Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan...

207
Sistem Terbenam Berasaskan Mikropemproses 68000 Muhammad Mun’im Ahmad Zabidi Universiti Teknologi Malaysia January 29, 2009

Transcript of Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan...

Page 1: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Sistem Terbenam Berasaskan Mikropemproses 68000

Muhammad Mun’im Ahmad ZabidiUniversiti Teknologi Malaysia

January 29, 2009

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 2: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Kandungan

1 Sistem Berasaskan Mikropemproses 11.1 Sistem Berasaskan Mikropemproses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Perkakasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Perisian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Evolusi Mikropemproses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5 Pemilihan Mikropemproses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Ciri Perisian 68000 112.1 Famili 68k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Model Pengaturcaraan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Organisasi Ingatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 Pengenalan kepada Set Suruhan 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 Beberapa Suruhan Asas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.6 Pengenalan kepada Mod Alamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.7 Format Suruhan Mesin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.8 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Bahasa Himpunan 293.1 Pembangunan Perisian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Perlaksanaan Aturcara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3 Format Penyata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.4 Ungkapan dalam Medan Kendalian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.5 Perintah Penghimpun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.6 Penggunaan Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4 Mod Alamat 474.1 Mod Daftar Data Langsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2 Mod Daftar Alamat Langsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.3 Alamat dan Daftar Alamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.4 Mod Mutlak Panjang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.5 Mod Mutlak Pendek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.6 Mod Terdekat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.7 Mod Tersirat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.8 Mod Daftar Alamat Tak Langsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.9 Mod Pascatokok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.10 Mod Prasusut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.11 Mod Daftar Alamat Tak Langsung dengan Ofset . . . . . . . . . . . . . . . . . . . . . . 564.12 Mod Daftar Alamat Tak Langsung dengan Indeks . . . . . . . . . . . . . . . . . . . . . 574.13 Mod PC Relatif dengan Ofset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.14 Mod PC Relatif dengan Indeks dan Ofset . . . . . . . . . . . . . . . . . . . . . . . . . 59

i

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 3: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

ii Kandungan

5 Suruhan Olahan Data 615.1 Suruhan ADD dan SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.2 Kesan ADD dan SUB Terhadap Bendera . . . . . . . . . . . . . . . . . . . . . . . . . . 625.3 Suruhan Darab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.4 Suruhan Bahagi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.5 Mengolah Kendalian Berlainan Saiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.6 Suruhan Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.7 Mengubah Bendera CCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.8 Suruhan Anjak dan Putar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.9 Suruhan Olahan Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.10 Suruhan BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6 Kawalan Aturcara 816.1 Suruhan Lompat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.2 Suruhan Cabang Tanpa Syarat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.3 Suruhan Cabang Bersyarat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846.4 Suruhan CMP, TST dan BTST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866.5 Pemilihan Dua Turutan Suruhan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906.6 Mengulang Turutan Suruhan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916.7 Bentuk Gelung Alternatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7 Olahan Tatasusunan dan Rentetan 977.1 Prinsip Tatasusunan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977.2 Isu-Isu Dalam Olahan Tatasusunan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017.3 Kajian Kes Olahan Tatasusunan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037.4 Rentetan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.5 Operasi Output Aksara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087.6 Rutin TRAP dalam Easy68k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.7 Penggunaan Tatusunan Lanjutan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

8 Tindanan dan Subrutin 1158.1 Tindanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158.2 Prinsip Asas Subrutin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168.3 Subrutin Bersarang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198.4 Melindungi Isi Daftar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208.5 Pengiriman Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.6 Penggunaan Subrutin Yang Berkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268.7 Kajian Kes Subrutin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

9 Ciri Perkakasan MC68000 1319.1 Pin dan Isyarat 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.2 Isyarat Kawalan Bas Tak Segerak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339.3 Isyarat Kawalan Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349.4 Kawalan Sampukan dan Status Pemproses . . . . . . . . . . . . . . . . . . . . . . . . . 1359.5 Kawalan Periferal 6800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389.6 Isyarat Kawalan DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389.7 Kitar Suruhan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 4: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Kandungan iii

10 Sistem Ingatan 14910.1 Organisasi Ingatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14910.2 Ingatan Baca Sahaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15010.3 Ingatan Capaian Rawak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15110.4 Serpihan Ingatan Piawaian Industri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15210.5 Logik gam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15510.6 Logik Kawalan Ingatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15610.7 Penyahkodan Alamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15810.8 Litar Penjana DTACK* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16110.9 Penyahkodan Separa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11 Pengantaramukaan Input/Output Asas 16711.1 Prinsip Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16711.2 Pengantaramukaan LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17111.3 Pengantaramukaan Pamer 7 segmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17211.4 Pengantaramukaan Suis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17511.5 Pengantaramukaan Papan Kekunci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17911.6 Input/Output Mudah dengan EASy68K . . . . . . . . . . . . . . . . . . . . . . . . . . 180

12 Pengantaramukaan Selari - WIP 18512.1 Peranti PIA MC6821 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18512.2 Input/Output dengan PIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

13 Pengantaramukaan Selari - WIP 19513.1 Penghantaran Data Bersiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19513.2 Peranti ACIA MC6850 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19813.3 Memulakan ACIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20113.4 Menggunakan ACIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20313.5 Serpihan Sokongan bagi Perhubungan Bersiri . . . . . . . . . . . . . . . . . . . . . . . 205

14 Kekecualian & Sampukan 20914.1 Mod Penyelia dan Pengguna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20914.2 Suruhan Kawalan Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21014.3 Pemprosesan Kekecualian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21214.4 Kekecualian yang Disebabkan Perlaksanaan Aturcara . . . . . . . . . . . . . . . . . . . 21414.5 Keadaan Ralat yang Menyebabkan Perangkap . . . . . . . . . . . . . . . . . . . . . . . 21814.6 Reset dan Pememulaan Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22014.7 Sampukan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22214.8 Kitar Akuan Sampukan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22314.9 Sampukan Tervektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 5: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 1

Sistem Berasaskan Mikropemproses

Objektif

• Membandingkan ciri-ciri sistem terbenam dan sistem guna am

• Menyenaraikan komponen utama sistem berasaskan mikropemproses

• Menerangkan operasi dalaman mikropemproses

• Menjelaskan evolusi mikropemproses

Pengenalan

Bab ini merupakan latar belakang kepada sistem berasaskan mikropemproses. Anda akan melihataplikasi mikropemproses dan komponen-komponen dalamannya secara am. Anda akan melihat susunandalaman komputer dan bagai-mana ia melaksanakan aturcara dalam ingatan. Anda akan juga melihatfaktor-faktor yang perlu diketahui semasa memilih mikropemproses untuk sesuatu aplikasi. Akhir sekali,kita akan melihat evolusi mikropemproses hingga ke hari ini.

1.1 Sistem Berasaskan Mikropemproses

Teknologi mikropemproses telah membolehkan banyak peranti elektronik mempunyai kecerdikan danmemudahkan kehidupan manusia. Peralatan yang mengandungi mikropemproses boleh dikategorikankepada komputer guna am dan sistem terbenam.

Komputer Guna Am

Apabila perkataan komputer disebut, selalunya kita akan memikirkan komputer guna am. Terdapatbeberapa kategori utama komputer guna am:

Komputer peribadi (PC1) — Apabila disebut perkataan “komputer”, bentuk yang paling pantasterlintas di fikiran mempunyai dua bentuk utama iaitu desktop dan laptop. Ia merupakan komputerguna am yang paling murah dan lazimnya menggunakan peranti papan kekunci dan tetikus untukinput, serta paparan dan pencetak untuk output.

Pelayan — Pelayan2 merupakan sebarang komputer yang dipasang sepanjang masa untuk melayanpermohonan dari pengguna. Pelayan adalah penggerak utama Internet, dengan menghidangkanapa saja maklumat yang diperlukan pengguna. Disebabkan pelayan perlu beroperasi tanpa henti

1personal computer2server

1

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 6: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2 Bab 1. Sistem Berasaskan Mikropemproses

berta-hun-tahun lamanya, ia dibina menggunakan perkakasan yang lebih berkualiti ber-bandingkomputer peribadi.

Kerangka utama — Komputer kerangka utama3 adalah sejenis pelayan yang dibuat oleh syarikat IBM.Namanya merujuk kepada saiznya yang besar serta memerlukan bilik dengan penyejukan khusus.Dengan adanya Internet, fungsi kerangka utama tidak lagi sepenting dahulu kerana fungsinyaboleh dilakukan oleh pelayan yang lebih murah.

Superkomputer — Superkomputer ditakrifkan sebagai komputer yang terpantas semasa ia mula-muladiperkenalkan. Disebabkan teknologi komputer bergerak pantas, superkomputer hari ini akanmenjadi komputer biasa pada hari esok. Superkomputer digunakan bagi pengiraan intensifseperti fizik kuantum, ramalan cuaca, permodelan molekul, simulasi (seperti simulasi pesawatdalam terowong udara dan simulasi senjata nuklear), dan sebagainya. Ia selalunya dijumpai diuniversiti-universiti utama, agensi ketenteraan dan makmal penyelidikan saintifik. Kebanyakansuperkomputer hari ini dibina dengan beribu-ribu mikropemproses biasa yang digabungkandengan penyambungan khusus. Versi kecil boleh dibina dengan empat pemproses ke atas danini dikenali sebagai gugusan komputer4.

Komputer guna am boleh melakukan pelbagai tugas menurut aturcara yang diisikan ke dalamnyadan peralatan yang disambungkan kepadanya. Untuk menggunakannya dengan efisien, komputer gunaam memerlukan sistem pengoperasian. Dalam komputer peribadi, sistem pengoperasian yang kerapdigunakan adalah Windows dan Mac OS X, manakala banyak pelayan menggunakan Linux atau Unix.

Sistem Terbenam

Sistem terbenam5 merupakan sistem komputer yang terkandung dalam satu peralatan. Umumnya, iatidak kelihatan seperti komputer. Aplikasi sistem terbenam menggunakan lebih 98% daripada pengelu-aran mikropemproses baru sedangkan pengeluaran selebihnya barulah digunakan dalam komputer gunaam. Berikut disenaraikan hanya segelintir sistem terbenam yang biasa kita temui:

Telefon bimbit Permainan videoKamera digital Kad pintar

Pencetak Mesin tekanan darahModem Walkie-talkie

Ketuhar gelombang mikro Pendingin hawaSistem brek kereta Radio kereta

Laser perangkap laju TV litar tertutup

Sistem terbenam direka untuk melakukan hanya satu fungsi berbanding komputer guna am yangboleh melakukan pelbagai fungsi. Jumlah sistem terbenam yang dikilang mencapai angka beberapabilion setiap tahun. Sebagai jurutera, anda mungkin dikehendaki merekabentuk sistem terbenam,sedangkan anda hanya perlu membeli sebuah komputer peribadi. Jadual 1.1 meringkaskan perbezaansistem terbenam dengan komputer kegunaan am.

1.2 Perkakasan

Sebarang sistem berasaskan mikropemproses terbahagi kepada dua aspek utama iaitu perkakasan6 danperisian7. Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar, cip dan

3mainframe4computer cluster5embedded systems6hardware7software

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 7: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

1.2. Perkakasan 3

Jadual 1.1: Perbandingan komputer kegunaan am dan sistem terbenam

Kategori Komputer Guna Am Sistem TerbenamAplikasi Boleh diubah oleh peng-

gunaTidak boleh, aplikasi telah dite-tapkan semasa rekabentuk

Antaramukapengguna

Amnya mesti ada papankekunci dan skrin

Tidak tetap, ada kalanya mudahdengan beberapa butang danLED, ada kalanya samakompleks dengan komputerguna am

Ciri penentu Kelajuan dankeserasian perisian

Lesapan kuasa, harga dan saiz

pendawaian. Perisian pula ialah aturcara yang terkandung dalam ingatan yang memboleh komputerberfungsi seperti yang dikehendaki. Perkakasan perlu dibina manakala perisian perlu ditulis.

Perkakasan terdiri beberapa unsur standard iaitu pemproses, ingatan, dan peranti input/output (I/O).Spesifikasi pemproses paling penting adalah jenis dan kelajuannya seperti Freescale 68000 beroperasipada 10 MHz. Spesifikasi ingatan terpenting ialah saiznya sama ada 32 kilobyte, 1 megabyte atau2 gigabyte. Peranti I/O merupakan komponen perkakasan yang dipilih bergantung aplikasi termasukpenukar analog/digital, penukar digital/analog, pengawal pemacu cakera, pemacu paparan video, dansebagainya.

Sistem Bas

Struktur asas bagi sebuah sistem komputer asas ditunjukkan dalam Rajah 1.1. Kesemua komponendisambungkan melalui bas sistem iaitu sekelompok pengalir yang dikongsi oleh komponen-komponendalam sistem. Bas sistem terbahagi kepada bas alamat, bas data dan bas kawalan. Fungsi terperinciketiga-tiga bas ini akan diliputi kemudian.

Pemproses atau unit pemprosesan pusat (CPU8) ialah jantung keseluruhan sistem. Ia mengawalkeseluruhan operasi yang dilakukan oleh sistem. Pemproses melaksanakan aturcara yang tersimpandalam ingatan.

Ingatan berfungsi menyimpan aturcara dan data yang diperlukan oleh mikropemproses. Ingatanterbahagi kepada dua jenis: ingatan baca-sahaja (ROM9) dan ingatan capaian rawak (RAM10). ROMdikenali juga sebagai ingatan tidak meruap yang bermakna kandungannya kekal walaupun tanpa bekalankuasa. RAM pula dikenali juga sebaga ingatan meruap yang mana kandungannya lenyap apabila bekalankuasa diputuskan.

Fungsi ROM dan RAM berbeza dalam komputer guna am dan sistem terbenam. Dalam komputerguna am, ROM mengandungi dua fungsi. Fungsi pertama ialah pengujian komponen-komponen kritikalsemasa sistem mula-mula dihidupkan. Setelah lulus peringkat ini, ROM melaksanakan fungsi keduanyaiaitu mengisikan sistem pengoperasian (seperti Windows atau Linux) ke dalam RAM. Setelah RAMdiisikan dengan sistem pengoperasian, ROM sudah tidak diperlukan lagi sepanjang operasi normalsistem. Saiz RAM amat besar kerana ia perlu menempatkan sistem pengoperasian dan aplikasi.Pengguna boleh mengisikan sebarang aplikasi daripada cakera keras ke dalam RAM. Disebabkanmaklumat dalam RAM lenyap apabila komputer ditutup, kesemua perisian ini perlu diisikan semuladari cakera keras setiap kali komputer mula-mula dipasang.

Dalam sistem terbenam, fungsi ROM lebih penting kerana mengandungi keseluruhan aplikasi yang

8central processing unit9read-only memory

10random access memory

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 8: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4 Bab 1. Sistem Berasaskan Mikropemproses

CPU

IngatanProgram(ROM)

IngatanData

(RAM)

AntaramukaSelari

AntaramukaSelari

AntaramukaBersiri

Bas Alamat

Bas Data

Bas Kawalan

Rajah 1.1: Rajah blok suatu sistem berasaskan mikropemproses.

menentukan fungsi peralatan. Disebabkan kandungan ROM tidak berubah, fungsi sistem akan kekalsepanjang hayat. RAM hanya diperlukan untuk menyimpan data yang perlu semasa operasi sistem.Segelintir sistem kecil boleh beroperasi tanpa RAM langsung.

Peranti input/output (I/O) diperlukan bagi membolehkan komputer ber-hubung dengan dunia luar.Peranti I/O selari melibatkan operasi membaca suis, mengawal lampu dan memindahkan data denganperanti selari seperti penukar D/A, penukar A/D atau pemacu cakera. Peranti I/O bersiri membolehkanperhubungan dengan komputer yang lebih besar atau dengan terminal operator. I/O bersiri agak lambattetapi ia amat mudah: cuma dua dawai (untuk menghantar dan menerima data) dan dawai bumidiperlukan.

Ada lagi komponen-komponen yang tidak ditunjukkan dalam Rajah 1.1 seperti litar pemasaan danlitar sampukan. Litar pemasaan mengawal kelajuan keseluruhan sistem dan biasanya terdiri daripadalitar berasaskan pengayun hablur. Litar sampukan pula, jika ada, membolehkan pemproses mengawalbanyak peranti input/output pada suatu masa.

Dalam pembinaan sistem terbenam yang mudah, kesemua komponen uta-ma iaitu pemproses,ingatan dan peranti I/O boleh dikecilkan sehingga dapat dimuatkan dalam satu cip. Peranti ini dikenalisebagai mikropengawal11 atau komputer dalam satu cip. Bagi sesuatu famili mikropengawal, terdapatberbagai versi yang berbeza saiz ingatan dan jumlah peranti I/O walaupun menggunakan pemprosesyang sama. Walaupun ia tidak berkeupayaan tinggi, ia banyak digunakan dalam sistem kecil kerana iakecil, murah dan boleh beroperasi dengan kuasa bateri. Lazimnya ingatan dalam mikropengawal adalahterhad dan tidak boleh ditambah jadi jurutera pereka mesti mahir mengoptimumkan penggunaan ingatan.Konfigurasi peranti I/O juga tidak boleh dipinda maka sebelum membina sistem, jurutera pereka perlumemilih versi yang benar-benar sepadan dengan sistem yang hendak dikawal.

Selain mikropemproses dan mikropengawal, sistem terbenam terdapat juga dalam bentuk sistemdalam cip (SoC12). Jika mikropengawal boleh dibeli di pasaran dengan mudah dan digunakan dalampelbagai sistem, SoC direka khusus untuk sesuatu produk seperti telefon bimbit dan pemain MP3.Berbanding mikropengawal, ia jauh lebih kompleks kerana mempunyai peranti I/O maju sepertipengawal LCD grafik, antaramuka USB, pengawal kad SD, penyahkod audio MP3 dan seumpamanya.Kos untuk mereka SoC amat tinggi tetapi menjimatkan kos keseluruhan pembuatan sesuatu produkkerana dapat mengurangkan jumlah komponen dan saiz produk.

Operasi Ingatan

Ingatan boleh dianggap menyimpan maklumat berbentuk satu senarai panjang. Setiap unsur dalamsenarai ini mempunyai alamat (lokasi) dan data (isi). Peranti ingatan mempunyai penyambungan kepadabas alamat, bas data dan input kawalan. Bas alamat, bersifat input, menentukan lokasi mana yang sedangdicapai. Jumlah talian alamat menentukan jumlah kedudukan yang terdapat dalam ingatan. Bagi bas

11microcontroller12 System-on-Chip

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 9: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

1.2. Perkakasan 5

Alamat DataData

Data

Alamat

Isyaratkawalan

Baca

Tulis

Rajah 1.2: Ingatan.

alamat n bit, terdapat 2n alamat. Bas data, bersifat input dan output, memindahkan data masuk dankeluar ingatan. Jumlah bit yang boleh dicapai pada sesuatu masa ditentukan oleh jumlah talian data.Bas kawalan menentukan operasi yang akan dilakukan terhadap ingatan.

Sebagai contoh, mikro-pemproses 6800 mempunyai bas alamat 16 bit dan bas data 8 bit. Oleh itu,saiz ingatannya ialah 216 = 65536 alamat dan setiap alamat mengandungi 8 bit (atau 1 byte). Bagimikropemproses 68k, bas alamatnya bersaiz 24 bit jadi ia mempunyai 224 = 16777216 alamat. Setiapalamat menyimpan satu byte. Bagaimanapun, dua alamat bergandingan boleh dicapai serentak. Oleh itubas datanya bersaiz 16 bit.

Dua operasi boleh dilakukan terhadap ingatan: baca dan tulis. Operasi mana yang dilakukanditentukan oleh isyarat BACA dan TULIS yang dihantar dari CPU ke ingatan sebagai sebahagiandaripada bas kawalan. Dalam operasi baca, maklumat dipindahkan dari ingatan ke pemproses. Untukoperasi ini, alamat maklumat yang dikehendaki diberikan oleh pemproses kepada ingatan. Seterusnya,perintah BACA dikeluarkan. Apabila ingatan melihat kedua-dua maklumat ini, ia mengeluarkan datayang terletak di alamat yang dinyatakan ke bas data. Data ini akhirnya dibaca oleh CPU.

Operasi tulis memindahkan data dari CPU ke dalam ingatan. Dalam operasi ini, bas data tidakmenjadi output ingatan tetapi berfungsi sebagai input. Untuk menulis secebis data ke dalam ingatan,CPU memberikan alamat di mana data akan disimpan ke bas alamat. Seterusnya, data yang akandisimpan dikeluarkan ke bas data. Akhir sekali, perintah TULIS diberi. Apabila ingatan melihatkesemua maklumat ini, ia menyimpan data ke di alamat yang dinyatakan.

(a) Membaca ingatan. (b) Menulis ingatan.

Rajah 1.3: Dua operasi yang boleh dilakukan terhadap ingatan.

Operasi Pemproses

Bagi memahami operasi mikropemproses, kita akan melihat secara ringkas rekabentuk dalaman CPU.Setiap pemproses mengandungi tiga komponen asas:

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 10: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6 Bab 1. Sistem Berasaskan Mikropemproses

Bas Alamat

Bas Data

Bas Kawalan

CPU

UnitKawalan

ALU

Daftar

Rajah 1.4: Unit Pemprosesan Pusat.

• Daftar13

• Unit kawalan14

• Unit aritmetik dan logik (ALU15)

Daftar mikropemproses menyimpan maklumat yang sedang digunakan. Terdapat daftar yangkelihatan kepada pengaturcara dan ada juga yang terlindung. Unit kawalan mengawal operasimikropemproses dan seterusnya keseluruhan sistem. ALU pula digunakan untuk memproses data.

CPU boleh dikelaskan menurut jumlah bit yang diproses serentak, yang bergantung kepada saizALU, daftar dan bas data. Saiz yang lebih lebar membolehkan data bersaiz besar diproses lebih pantas.Sebagai contoh, data sebesar 32 bit dipindahkah dalam hanya satu langkah dengan bas data 32 bit tetapimemerlukan 4 langkah dengan bas data 8 bit.

Mikropemproses 68000 mempunyai daftar 32 bit tetapi saiz ALU dan bas datanya hanya 16 bit.Oleh kerana kedua-dua saiz data digunakan, 68000 dirujuk sebagai pemproses 16/32 bit. Sebagaiperbandingan, saiz bas data, ALU dan daftar pemproses 68HC11 kesemuanya 8 bit.

Kesemua pemproses berfungsi dengan melaksanakan suruhan yang dipungut dari ingatan. Masaperlaksanaan setiap suruhan dinamai kitar suruhan atau kitar pungut-laksana. Kitar suruhan terdiridaripada dua fasa utama:

• Pungut16 — ambil suruhan dari ingatan

• Laksana17 — tafsir dan laksana suruhan

Semasa fasa pungut, pemproses mengambil satu suruhan dari ingatan. Untuk mencapai ke suruhanini, alamat suruhan diisikan dahulu ke daftar yang dinamai pembilang aturcara (PC18). Pemprosesmembaca suruhan yang terkandung di alamat yang dinyatakan dalam PC. Suruhan ini kemudiannyadiisi ke daftar suruhan (IR 19). IR lazimnya tidak termasuk dalam senarai daftar-daftar pemproses yangboleh dicapai secara langsung oleh pengaturcara.

Semasa fasa laksana, pemproses mentafsir atau menentukan jenis suruhan yang terkandung dalamIR. Suruhan adalah suatu nombor perduaan yang difahami oleh unit kawalan. Kombinasi bit dalamsuruhan menentukan apakah operasi yang perlu dilakukan serta kedudukan data yang diproses oleh

13register14control unit15Arithmetic and Logic Unit16fetch17execute18program counter19 instruction register

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 11: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

1.3. Perisian 7

suruhan tersebut. Setelah suruhan ditafsirkan, barulah pemproses boleh melakukan tugas yangdikehendaki.

Senarai semua jenis suruhan yang boleh dilakukan digelar set suruhan20. Set suruhan sesuatumikropemproses bergantung kepada keupayaan mikropemproses tersebut. Sebagai contoh, sebuahpemproses 32 bit lazimnya mempunyai suruhan darab dan ia boleh mendarab dengan pantas danmudah. Sebaliknya, sistem 8 bit lazimnya tiada suruhan darab. Jika operasi darab diperlukan, iaterpaksa dilaksanakan dengan berpuluh-puluh suruhan dan memakan masa yang lebih lama. Setelahmikropemproses menamatkan satu kitar suruhan, ia akan memungut lalu melaksanakan suruhanseterusnya sehingga komputer dimatikan.

1.3 Perisian

Perisian adalah istilah am yang merangkumi satu atau banyak aturcara atau program yang dilaksanakandalam komputer. Sesuatu aturcara terdiri daripada banyak suruhan. Aturcara boleh dianggap suatugubahan muzik sedangkan suruhan adalah satu not yang keluar dari satu alat muzik. Untuk memainkanlagu yang menarik, kita perlu tahu mengeluarkan bunyi dengan not yang betul pada masa yang tepat.Dengan cara yang sama, kita perlu tahu kesan setiap suruhan dan mengatur suruhan-suruhan di dalamsuatu aturcara.

Dalam penulisan aturcara, mula-mula kita perlu mendapatkan algoritma atau konsep penyelesaianmasalah. Seterusnya, algoritma perlu diterjemah menjadi suatu aturcara yang boleh difahami komputer.Inilah proses penulisan aturcara atau pengekodan21, yang boleh dilakukan dalam pelbagai bahasapengaturcaraan. Dalam sistem berasaskan mikropemproses, terdapat beberapa bahasa pengaturcaraanutama iaitu bahasa mesin, bahasa himpunan dan bahasa tahap tinggi.

Bahasa Mesin

Bahasa mesin22 ialah bahasa tabii komputer berbentuk kod perduaan. Ia mengawal operasi tahap rendahyang paling mudah atau primitif. Setiap operasi primitif tidak lebih daripada operasi memindahkankelompok-kelompok bit dari satu tempat ke tempat lain dalam komputer, operasi asas aritmetik sepertitambah dan tolak, dan sebagainya.

Pengguna boleh mengaturcara komputer dengan bahasa mesin secara mendapatkan kod perduaanbagi setiap suruhan kemudian mengisikan suruhan ke dalam ingatan secara manual.. Ia boleh dilakukanuntuk mikropemproses mudah tetapi agak remeh untuk 68000. Bahasa ini tidak cekap keranapengaturcaraannya lambat dan kesilapan terlalu mudah berlaku.

Bahasa Himpunan

Untuk memudahkan penulisan bahasa mesin, aturcara ditulis dalam bahasa himpunan23. Suruhan-suruhan dalam bahasa himpunan berbentuk kod senang ingat atau mnemonik. Aturcara punca diterjemahke bahasa mesin dengan penghimpun24. Bahasa himpunan, sama seperti bahasa mesin, adalah khususkepada setiap mikropemproses. Ini bermakna aturcara himpunan untuk sesuatu mikropemproses tidakdifahami oleh mikropemproses lain.

Apabila penghimpun menghasilkan bahasa mesin yang akan dilaksanakan di sistem denganmikropemproses yang lain, ia dinamai penghimpun silang25. Contohnya, penghimpun ASM68Kmenghimpun bahasa himpunan 68000 tetapi dilaksanakan komputer peribadi. Aturcara yang dihasilkan

20instruction set21coding22machine language23assembly language24assembler25cross assembler

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 12: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8 Bab 1. Sistem Berasaskan Mikropemproses

oleh penghimpun digelar juga kod objek26. Selain menukar aturcara punca ke bentuk objek, penghimpunmenghasilkan fail senarai27. Fail senarai menunjukkan mnemonik, lokasi ingatan yang digunakan, dannilai perenambelasan setara bagi setiap suruhan.

Bahasa himpunan harus digunakan untuk membina sistem berasas mikropemproses yang optimum.Ini kerana aturcara bahasa himpunan padat, pantas dan berupaya mengawal setiap komponen perkakasandalam sistem. Namun begitu, pereka tidak boleh mengabaikan bahasa mesin sama sekali jika inginmelakukan pengaturcaraan secara berkesan.

Bahasa Tahap Tinggi

Bahasa tahap tinggi membolehkan aturcara lebih mudah ditulis dan mudah dialihkan ke sebarangmikropemproses lain jika perlu. Bagaimanapun, kod objek yang dihasilkan oleh pengkompil bahasatahap tinggi selalunya beroperasi dengan lebih perlahan dan saiz kod objek yang terhasil lebih besarberbanding kod objek yang dikeluarkan oleh penghimpun. Dua bahasa tahap tinggi yang popular dalampembinaan sistem terbenam ialah C dan BASIC.

C ialah bahasa yang amat popular kerana ia berupaya mengawal sumber-sumber perkakasan hampirsama seperti bahasa himpunan. Dengan penggunaan pengkompil, aturcara punca dalam C ditukar kekod objek. Sesetengah pengkompil membolehkan suruhan bahasa himpunan diselitkan dalam aturcaraC membolehkan kedua-dua bahasa digabungkan dalam satu aturcara.

BASIC28 ialah bahasa tahap tinggi yang paling mudah dipelajari. Penyata-penyata aturcara puncaditerjemah semasa perlaksanaan ke bahasa mesin menggunakan pentafsir. Ini menyebabkan aturcaraBASIC beroperasi dengan amat perlahan. Terdapat juga pengkompil BASIC yang menghasilkanaturcara bahasa mesin terus daripada aturcara punca. Ini sedikit sebanyak mempercepatkan perlak-sanaannya.

1.4 Evolusi Mikropemproses

Mikropemproses yang pertama ialah Intel 4004 yang diperkenalkan pada tahun 1971. Ia merupakanperanti 4 bit yang asalnya direka untuk membina alat kira. Pada tahun berikutnya, Intel memperkenalkanperanti 8008 iaitu mikropemproses 8 bit yang pertama. Cip ini diikuti oleh 8080 dan 8085. Produkmikropemproses pertama dari Motorola ialah MC6800 pada tahun 1974. Cip ini juga merupakan peranti8 bit. Suatu cip yang rekabentuknya berasal daripada MC6800 ialah 6502 yang dibina oleh MOSTechnology Corporation. Cip 6502 digunakan dalam Apple II, iaitu komputer peribadi yang pertama.

Mikropemproses 16 bit pertama ialah 8086 yang dikeluarkan oleh Intel pada tahun 1978. Cip keduadalam siri ini – 8088 – digunakan dalam IBM PC asal. Kedua-dua cip ini merupakan asas kepadaperanti 80286, 80386, 80486, Pentium dan pemproses-pemproses lain yang berasaskan Pentium. Setiapcip merupakan pembaikan kepada cip sebelumnya dan membentuk siri yang dikenali sebagai x86. Sirix86 dikembangkan ke 32 bit bermula dengan pemproses 80386, dikenali sebagai siri IA-32 oleh Intel.Seterusnya siri x86 dikembangkan ke 64 bit bermula dengan AMD Opteron dan Intel Core sebagai siriAMD64 dan EM64T.

Motorola memperkenalkan pemproses 68000 pada tahun 1979. Peranti ini mengasaskan mikropem-proses famili 68k yang termasuk 68000, 68008, 68010, 68020, 68030, 68040 dan 68060. Siri ini padaasalnya direka sebagai pemproses dalam komputer guna am terutamanya dalam komputer Apple, tetapipada hari ini ia hanya dijumpai dalam sistem terbenam selepas tiada lagi perkembangan siri ini selepastahun 1993. Dalam satu perkembangan berkaitan, bahagian firma Motorola yang mereka pemproses(Motorola Semiconductor Products Sector) dipisahkan dari syarikat induk pada 2004 membentuk firmaFreescale. Pada hari ini, pemproses Motorola 68k lebih tepat lagi disebut Freescale 68k.

26object code27listing file28Beginner’s All-purpose Symbolic Instruction Code

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 13: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

1.5. Pemilihan Mikropemproses 9

1.5 Pemilihan Mikropemproses

Boleh dikatakan semua komputer peribadi pada hari ini menggunakan siri x86, sama ada dibuat olehsyarikat Intel, AMD dan lain-lain. Siri x86 ada juga digunakan dalam sistem terbenam prestasi tinggiyang agak besar seperti robot.

Dalam pembinaan sistem terbenam, pemilihan pemproses tidak condong kepada siri x86 sahajakerana terdapat pelbagai faktor lain seperti penggunaan kuasa, saiz dan kos. Terdapat pelbagai jenismikropemproses yang digunakan dalam sistem terbenam. Ini berbeza dengan komputer guna am yangpilihan pemprosesnya terhad. Beberapa faktor perlu dipertimbangkan semasa membanding dan memilihmikropemproses untuk sesuatu tugas.

Jurutera pereka boleh memilih peranti yang sesuai dengan aplikasi dari mikropengawal 4 atau8 bit hinggalah ke pemproses penuh 32 dan 64 bit. Dari Freescale sahaja terdapat mikropengawalColdFire, M*Core, PowerPC, 68HC11, 68HC05, 68HC08 dan beberapa lagi. Dari firma lain terdapatmikropengawal ARM, PIC, MSP430, Rabbit, AVR, TMS320, Nios, MicroBlaze dan berpuluh-puluhlagi.

Satu kaedah yang paling mudah bagi membezakan kelajuan sistem ialah juta suruhan sesaat(MIPS29). Contohnya, mikropemproses 68000 boleh mencapai 0.6 MIPS pada kelajuan 8 MHz tetapi68040 boleh mencecah 40 MIPS. Unit MIPS boleh digunakan untuk membandingkan pemproses darisiri yang sama seperti dalam siri 68k atau dalam siri x86. Bagaimanapun, unit ini tidak begitu tepatbagi membanding pemproses dari siri yang berbeza contohnya satu pemproses dari siri 68k dengan satupemproses lain dari siri x86.

Saiz dan kuantiti data yang perlu diproses menentukan saiz mikropemproses yang diperlukan.Contohnya, suatu sistem pemain video dengan grafik tiga dimensi perlu melukis imej di kaca TVdengan sangat pantas dan ingatannya pula perlu mempunyai ingatan yang besar untuk menyimpanmaklumat bagi setiap bintik yang dipaparkan. Aplikasi ini tidak mungkin dapat diselesaikan denganmikropemproses 8 bit. Sebaliknya, sebuah sistem penggera mungkin mendapat input sejam sekali danmaklumat yang di bawah kawalannya hanya memerlukan beberapa puluh byte untuk disimpan. Dalamaplikasi ini, pemproses 8 bit lebih daripada mencukupi.

Integrasi sistem menggambarkan keupayaan pengembangan sesuatu cip mikropemproses ataumikropengawal. Jika peranti input/output banyak tersedia dalam cip asas, peralatan tambahan tidaklagi diperlukan. Ini dapat mengecilkan saiz papan litar dan mengurangkan penggunaan kuasa.Bagaimanapun, terlalu banyak peranti yang tidak digunakan akan menambahkan kos pembuatan.

Jika komputer yang direka hendak dikeluarkan dengan banyak, dan keuntungan ingin dimaksi-mumkan, kita perlu memilih komputer terkecil yang mampu melakukan tugas dikehendaki. Mikropem-proses 4 bit, misalnya, masih banyak digunakan untuk kerana kosnya yang amat rendah.

Satu lagi faktor yang perlu dipertimbangkan dalam pembuatan dalam sistem berasas mikropem-proses ialah lesapan kuasa. Sistem yang jimat kuasa boleh bergantung hanya kepada bateri sebaliknyasistem yang kurang cekap kuasa mungkin memerlukan unit bekalan kuasa yang disambungkan kepadasoket arus ulang-alik. Sudah tentulah sistem yang bergantung kepada bateri amat mudah dibawa kemana-mana. Mikropemproses yang kurang cekap kuasa juga mungkin memerlukan kipas penyejukan.Faktor ini menyebabkan rekabentuk cesi peralatan perlu diubah dan kerapkali menjadi lebih besar dankurang mudah alih.

Masa ke pasaran ialah masa yang diperlukan untuk menyiapkan sesuatu rekabentuk. Ia bergantungkepada kemahiran perekabentuk dan kewujudan kelengkapan dan komponen yang diperlukan. Sesuatumikropemproses mempunyai kos dan lesapan kuasa yang rendah serta keupayaan yang tinggi tidaksemestinya dipilih jika tiada jurutera dalam sesuatu organisasi tersebut pernah menggunakannya. Perludiingat, masa untuk mereka sistem yang kedua jauh lebih singkat berbanding dengan rekabentukpertama. Kehadiran komponen perkakasan dan perisian yang diperlukan juga penting untuk menyiapkansesuatu projek dalam masa yang singkat.

29million instructions per second

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 14: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10 Bab 1. Sistem Berasaskan Mikropemproses

Latihan

1. Komponen atau litar manakah yang bukan sebahagiandaripada pemproses?

(a) RAM

(b) ALU

(c) Daftar

(d) Unit kawalan

(e) Pembilang aturcara

2. Pilih pernyataan yang paling sesuai bagi menerangkan mikropemproses.

(a) Cip yang mengandungi hanya pemproses

(b) Cip yang mengandungi kesemua komponen komputer

(c) Kurang luwes (fleksible) dalam rekabentuk sistem berbanding mikropengawal

(d) Memerlukan hanya satu cip untuk membina sistem yang lengkap

(e) Biasanya kurang menggunakan kuasa berbanding mikropengawal

3. Yang manakah antara yang berikut tidak mengandungi mikropemproses?

(a) Pelayan

(b) Ketuhar gelombang mikro

(c) MyKad

(d) PDA

(e) Tukul

4. ROM bermakna

(a) Run Once Memory

(b) Residual Oxidation Memory

(c) Reprogrammable Once Memory

(d) Read-Only Memory

(e) Random Oscillator Modulation

5. Berikut disenarakan beberapa saiz bas alamat. Untuk setiap satu, kira saiz ruang ingatan bagikomputer berkenaan.

(a) 16 bit

(b) 20 bit

(c) 24 bit

(d) 32 bit

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 15: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 2

Ciri Perisian 68000

Objektif

• Menerangkan latar belakang famili 68k

• Melakar model pengaturcaraan 68000

• Menjelaskan organisasi ingatan

• Menerangkan format suruhan mesin

2.1 Famili 68k

Bab ini merupakan pengenalan kepada senibina mikropemproses 68000 dan famili 68k. Peranti iniadalah pemproses pertama yang dikaji dengan mendalam. Berikut ialah sebab kenapa mikropemprosesini sesuai dikaji:

• Ia popular.

• Reka bentuknya kemas

• Set suruhannya komprehensif

Ia mempunyai ciri-ciri yang memudahkan rekabentuk sistem pengendalian dan pengaturcaraanbahasa tahap tinggi.

Pemproses pada hari ini sememangnya kompleks dan akan terus menjadi semakin kompleks. Olehitu mikropemproses pertama yang dipelajari sepatutnya lebih kompleks.

Peranti MC68000 adalah pengasas siri 68k yang asalnya direka untuk menjadi unit pemprosesanpusat (CPU) dalam komputer guna am. Ia disusuli oleh beberapa komponen yang berbeza kelajuan dankeupayaan. Jadual 2.1 meringkaskan perbezaan CPU dalam famili 68k.

Awalan MC menunjukkan bahawa peranti ini dibuat oleh Motorola atau Freescale. Sekiranya dibuatoleh rakan niaganya seperti SGS-Thomson atau Hitachi, awalan yang berbeza akan digunakan.

Pada hari ini, famili 68k tidak lagi digunakan dalam komputer guna am tetapi meluas digunakandalam sistem terbenam dalam bentuk yang berbeza-beza, antaranya:

• Pemproses terbenam1 — merupakan pemproses asal dengan diubah nama untuk tujuan pemasaranseperti MC68EC000.

• Mikropengawal — menggabungkan pemproses teras seperti CPU32 (yang paling mirip 68020)dengan ingatan dan peranti I/O asas seperti penukar analog ke digital (ADC), antaramuka bersiri,pembilang, pemasa dan litar-litar yang seumpamanya dalam satu cip.

1embedded controller

11

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 16: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12 Bab 2. Ciri Perisian 68000

Jadual 2.1: Unit pemprosesan pusat (CPU) dalam siri 68k

Komponen Tahun Bas Bas Ciri PentingData AlamatMC68000 1979 16 24 Asas siri 68kMC68008 1982 8 24 Asas siri 68k MC68008MC68010 1983 16 24 MC68000 dengan ingatan mayaMC68020 1984 32 24 Pemproses 32 bit pertama dalam famili 68kMC68030 1987 32 32 MC68020 diperbaiki dengan ditambah MMUMC68040 1990 32 32 MC68030 diperbaiki dengan ditambah FPUMC68060 1993 64 32 MC68040 dengan 2 ALU dengan 1 FPU dan kelajuan 1

suruhan/kitar

• Sistem dalam cip (SoC) – merupakan mikropengawal yang amat kompleks. Jika mikropengawalboleh digunakan dalam pelbagai sistem, SoC direka khusus untuk satu produk dan mengandungiperanti I/O yang kompleks seperti LCD, grafik, USB dan wayarles. Contoh SoC dari siri 68k ialahperanti Dragonball yang pernah digunakan dalam PDA PalmPilot.

Teknologi pembuatan semikonduktor juga telah berubah. Pada asalnya MC68000 dibuat denganteknologi NMOS, tetapi kini peranti yang paling mirip iaitu MC68HC000 dibuat dengan teknologiCMOS. Penggunan teknologi CMOS mengurangkan lesapan kuasa dari 1 W ke 100 mW sahaja.

Selain peranti-peranti yang menggunakan pemproses berasaskan 68000, terdapat siri mikropengawalColdfire yang menggunakan pemproses lebih moden. Dengan menggunakan seni bina dalaman RISC,pemproses ini mempunyai prestasi yang tinggi pada kos yang rendah.

Keserasian aturcara adalah ciri penting ahli-ahli famili 68k. Aturcara yang ditulis untuk peranti68000 boleh dilaksanakan oleh ahli-ahli famili yang lebih maju seperti 68020 atau ColdFire. Setelahmemahami suruhan-suruhan MC68000 asas, mudah untuk kita mengaturcara pemproses-pemproses laindalam famili ini.

2.2 Model Pengaturcaraan

Model pengaturcaraan menunjukkan daftar CPU yang boleh dicapai oleh pengaturcaraan dan petaingatan. Komponen-komponen lain CPU seperti daftar suruhan, ALU, dan unit kawalan tidakditunjukkan kerana tidak berada di bawah kawalan pengaturcara.

Pemproses 68000 mengandungi daftar berikut:

• Lapan daftar data2 32 bit (D0-D7)

• Tujuh daftar alamat3 32 bit (A0-A6)

• Dua penuding tindanan4 (USP dan SSP)

• Satu pembilang aturcara5 32 bit (PC)

• Satu daftar status6 16 bit (SR)

2data register3address register4stack pointer5program counter6status register

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 17: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.2. Model Pengaturcaraan 13

Rajah 2.1: Set daftar 68000.

Daftar Data

Daftar data mempunyai pelbagai fungsi tetapi fungsi utamanya ialah menyimpan data yang akan dantelah diproses oleh ALU. Setiap daftar data bersaiz 32 bit. Setiap bit diberi nombor kedudukan denganbit 0 terletak paling bawah dan bit 31 terletak teratas. Secebis data bersaiz 32 bit (kata panjang)menggunakan keseluruhan daftar. Data bersaiz 16 bit (kata) hanya menggunakan 16 bit bawah, iaitubit 0 hingga 15. Data bersaiz 8 bit (byte) hanya menggunakan bit 0 hingga 7. Rujuk Rajah 2.1. Garisan-garisan kelabu menunjukkan sempadan untuk byte, kata dan kata panjang.

Kesemua daftar ini bersifat umum yakni apa sahaja yang boleh dilakukan terhadap sesuatu daftarboleh dilakukan terhadap 7 daftar lain. Sesetengah mikropemproses lain mempunyai daftar data yangsetiap satu mempunyai fungsi tertentu — tetapi tidak halnya dengan 68000.

Daftar Alamat

Daftar alamat, A0 hingga A7, digelar sedemikian kerana maklumat yang disimpan di dalamnyamelambangkan lokasi suatu objek dalam ingatan. Setiap daftar alamat bertindak sebagai penuding.Kita tidak boleh melakukan operasi byte di dalam daftar alamat kerana alamat hanya bersaiz 16 bitatau 32 bit. Walaupun setiap daftar besarnya 32 bit, 68000 hanya menggunakan 24 bit terendah apabilamencapai ingatan menghasilkan julat alamat sebesar 224 (16M) byte.

Terdapat suruhan-suruhan 68000 yang beroperasi hanya terhadap daftar alamat. Operasi byteterhadap daftar alamat tidak dibenarkan. Apabila nilai 16 bit diisikan, ia dipanjangkan ke 32 bit.

Daftar alamat serbaguna, A0 hingga A6, berkelakuan sama. Apa sahaja yang boleh dilakukan kepadasesuatu daftar boleh juga dilakukan kepada enam daftar lain.

Disebabkan bas alamat 68000 adalah 24 bit, hanya 24 daripada 32 bit yang terdapat dalam daftaralamat digunakan untuk mencapai ingatan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 18: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

14 Bab 2. Ciri Perisian 68000

Penuding Tindanan

Penuding tindanan merupakan daftar alamat A7 atau SP. Dalam kebanyakan operasi, kelakuannya samaseperti daftar A0 hingga A6. Bagaimanapun, penuding tindanan mempunyai fungsi yang lebih khususiaitu untuk melaksanakan tindanan dan subrutin.

Pemproses 68k mempunyai dua mod pemprosesan iaitu mod penyelia atau mod pengguna. Untukmenyokong dua mod ini, terdapat dua penuding tindanan iaitu penuding tindanan penyelia (SSP7)dan penuding tindanan pengguna (USP8). Penuding tindanan semasa diset menurut mod pemprosesan,dan dirujuk sebagai SP atau A7. Kewujudan dua mod dan dua penuding tindanan membolehkan 68kmelaksanakan sistem pengoperasian9. Sistem pengoperasian membolehkan sistem terus beroperasi jikaterdapat ralat dalam perisian. Bagi sistem mudah, hanya SSP digunakan.

Pembilang Aturcara

Pembilang aturcara (PC) menuding kepada suruhan yang akan dilaksanakan. Daripada 32 bit yang adadi sini, hanya 24 bit dapat dikeluarkan ke bas alamat kerana itulah saiz fizikal bas alamat. Pemproseslanjutan dalam famili 68k menggunakan kesemua 32 bit. Untuk melaksanakan sesuatu suruhan, daftarPC diisi dengan alamat suruhan tersebut. Semasa suruhan dinyahkod oleh unit kawalan, PC ditambahsupaya menuding ke suruhan yang berikutnya. Dengan itu, setelah suruhan dilaksanakan, CPU telahmempunyai maklumat yang cukup untuk memungut suruhan berikutnya.

Daftar Status

Daftar status dibahagikan kepada dua seksyen: byte sistem dan byte pengguna. Apabila 68000 beradadalam mod penyelia, keseluruhan daftar boleh dibaca dan diubah. Dalam mod pengguna, kedua-duabyte boleh dibaca tetapi hanya byte rendah boleh diubah.

Byte Pengguna

Bit-bit dalam daftar status yang paling kerap digunakan oleh pengaturcara ialah yang terdapat dalam bytepengguna. Byte pengguna yang dikenali juga sebagai daftar kod syarat10 (CCR). Setiap bit dalam CCRdinamai bendera. CCR menyimpan analisis operasi CPU terakhir. Fungsi setiap bendera diterangkansecara ringkas di sini:

• C (carry) — Bernilai 1 apabila terdapat bawa semasa operasi tambah atau pinjam semasa operasitambah. Dalam operasi anjak, ia mengandungi bit yang dianjak keluar dari kendalian.

• V (overflow) — Bernilai 1 apabila limpahan aritmetik berlaku. Limpahan aritmetik berlakuapabila operasi terhadap integer bertanda melebihi ruang yang yang disediakan.

• Z (zero) — Bernilai 1 apabila hasil operasi sifar.

• N (negative) — Bernilai 1 apabila hasil operasi negatif.

• X (extend) — Menyalin nilai C untuk operasi aritmetik. Dalam kebanyakan suruhan lain nilainyatidak berubah.

Kesan setiap suruhan terhadap nilai bendera tidak sama. Terdapat suruhan yang mengubah kesemuabendera, ada juga yang mengubah hanya beberapa bit dan ada suruhan yang langsung tidak mengubahsebarang bendera. Untuk mengetahui kesan sesuatu suruhan terhadap CCR, set suruhan perlu dirujuk.

7supervisor stack pointer8user stack pointer9operating system

10condition codes register

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 19: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.3. Organisasi Ingatan 15

Rajah 2.2: Daftar status.

Byte Sistem

Bit-bit dalam byte sistem digunakan bagi mengawal operasi keseluruhan sistem. Butir terperincipenggunaan bit-bit ini diliputi dalam Bab 13.

• I2–I0 — Tiga bit serangkai ini dikenali sebagai bit topeng sampukan11. Bit-bit ini mengawal tahapsampukan yang disambut oleh CPU. Jika dibenarkan melalui bit-bit ini, sampukan menyebabkanpemproses meninggalkan sebentar kerja yang sedang dilakukan bagi membuat suatu operasi yanglebih penting. Ciri ini membolehkan masa CPU digunakan dengan lebih optimum. Nilai I2-I0semasa reset ialah 111.

• S (supervisor) — Pemproses 68000 boleh berada sama ada dalam mod pengguna atau modpenyelia. Jika S=1, pemproses berada dalam mod penyelia. Ada tiga perbezaan mod-mod ini.Dalam mod penyelia penunjuk tindanan yang digunakan ialah SSP, keseluruhan daftar status bolehdicapai, dan kesemua suruhan boleh digunakan. Dalam mod pengguna, penunjuk tindanan yangaktif ialah USP, hanya byte rendah daftar status boleh dicapai dan beberapa suruhan tidak bolehdilaksanakan. Nilai bit S semasa reset ialah 1.

• T (trace) — Jika T = 1, 68000 beroperasi dalam mod surih: selepas setiap suruhan, pemprosesmasuk ke rutin nyahpepijat12 bagi menyemak nilai daftar CPU dan isi ingatan. Nilai bit T semasareset ialah 0 dan suruhan-suruhan dilaksanakan secara normal. Bit T hanya boleh diset ke 1 jikasistem telah disiapkan dengan rutin khas bagi mengendalikannya.

2.3 Organisasi Ingatan

Set suruhan 68000 boleh menyokong pemprosesan secara langsung lima jenis data. Lima jenis data iniialah:

• Bit

• Digit BCD13 (4 bit setiap satu, tetapi diproses berpasangan)

• Byte (8 bit)

• Kata14 (16 bit)

11interrupt mask bits12debug routine13binary coded decimal14word

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 20: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

16 Bab 2. Ciri Perisian 68000

• Kata panjang15 (32 bit)

Suruhan-suruhan boleh memproses satu atau lebih daripada jenis-jenis ini, tetapi tidak semuasuruhan boleh memproses kesemua jenis. Jika sesuatu suruhan boleh memproses lebih daripada satujenis data, imbuhan .B (byte), .W (word) atau .L (longword) ditambah kepada mnemonik suruhan untukmemilih saiz data yang dikehendaki.

Bagaimana dengan aksara, rentetan, titik-apung dan sebagainya? Data daripada jenis ini dijanamelalui pengaturcaraan. Suruhan-suruhan individu tidak boleh mengendalikan data ini sebaliknyaturutan suruhan atau subrutin mesti ditulis jenis-jenis data ini.

Ingatan digunakan untuk menyimpan aturcara dan data. Ini berbeza dengan daftar yang hanya bolehmenyimpan data. Ingatan lebih perlahan tetapi lebih besar berbanding daftar.

Bas alamat peranti 68000 saiznya 24 bit menjadikan 68000 boleh mencapai 224 = 24 x 220 = 16megabyte ingatan. Ia boleh dilihat sebagai satu senarai petak atau sel, yang setiap satu menyimpan satunilai 8 bit atau byte. Sel ingatan dinombor dari sifar sehingga muatan maksimum ingatan. Satu megabytebersamaan 220 atau 1048576. Oleh itu 16 megabyte mengandungi 167771216 kedudukan atau alamat.Rajah 2.3(a) menunjukkan peta ingatan yang menunjukkan satu byte bagi setiap alamat.

Alamat ingatan biasanya dituliskan dalam perenambelasan. Dalam dokumentasi Motorola/Freescale,nombor perenambelasan dinyatakan dengan simbol $. Jadi julat alamat 68000 ialah dari $000000 (0)

15longword

(a) Satu byte sebaris. (b) Satu kata sebaris.

Rajah 2.3: Dua kaedah mengatur ingatan.

Rajah 2.4: Menyimpan kata panjang dalam ingatan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 21: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.4. Pengenalan kepada Set Suruhan 68000 17

hingga $FFFFFF (16777121610).Bas data 68000 saiznya 16 bit. Ini menjadikan pemproses 68000 mampu mencapai sejumlah 16 bit

data ingatan dalam satu langkah. Setiap kata hanya boleh disimpan bermula dari alamat genap. Olehitu, kata pertama dalam ingatan mempunyai alamat $000000, kata kedua di $000002, kata ketiga di$000004 dan seterusnya. Jika kita menganggap ingatan hanya mengandungi kata, julat alamat ingatanialah $0000000 hingga $FFFFFE.

Peta ingatan boleh dilukis semula untuk memaparkan satu kata setiap baris. Alamat-alamat berbezasebanyak dua dari satu baris ke baris berikutnya. Rajah 2.3(b) memaparkan peta ingatan yang standarddalam pengaturcaraan 68000.

Sama seperti kata, kata panjang juga mesti bermula dari alamat genap. Alamat-alamat bagi kata-katapanjang bersebelahan berbeza sebanyak empat. Jika kata panjang pertama mempunyai alamat n, katapanjang akan berada di alamat n+4, dan seterusnya. Bagaimanapun, n ialah sebarang nilai genap. Rajah2.4 menunjukkan pandangan ingatan semasa menyimpan kata-kata panjang.

Kata dan kata panjang tidak boleh bermula dari alamat ganjil. Cip 68000 menghalang operasi bacaatau tulis yang melanggar syarat ini (contohnya, cuba membaca kata dari alamat ganjil). Jika operasiseperti ini dicuba, suatu kekecualian terjadi kerana terdapat ralat alamat. Bab 13 akan menerangkanlebih lanjut mengenai konsep kekecualian.

Maklumat yang disimpan dalam ingatan terdiri daripada data dan suruhan. Data berbentuk nomboryang boleh diproses dengan operasi aritmetik atau aksara yang boleh diolah sebagai rentetan. Suruhanmemberitahu pemproses bagaimana data perlu diproses. Semua data dan aturcara berbentuk nomborperduaan dan pengaturcara perlu memastikan komputer tidak mengelirukan suruhan dengan data.

2.4 Pengenalan kepada Set Suruhan 68000

Set suruhan menentukan operasi yang boleh dipilih untuk fungsi-fungsi pemindahan data, aritmetik,kawalan aturcara dan sebagainya Mikropemproses 68000 mempunyai cuma 54 suruhan asas, tetapi biladikira kesemua variasinya, jumlahnya melebihi 1000! Setiap suruhan mesti mengandungi:

• Kod operasi

• Saiz kendalian

• Kedudukan kendalian

Kod operasi atau opkod menentukan operasi yang perlu dilakukan. Saiz kendalian menentukan samaada operasi bertindak kepada data byte, kata atau kata panjang. Kedudukan kendalian memberitahu CPUalamat berkesan kendalian iaitu bagaimana kendalian dicapai, sama ada dalam daftar atau ingatan.

Jadual 2.2 menyenaraikan set suruhan 68000. Setiap mnemonik melambangkan satu kod operasi.Satu huruf menentukan panjang kendalian sama ada byte (B), kata (W) atau kata panjang (L).Contohnya, suruhan bagi memindahkan kendalian 16 bit dari kedudukan punca ke destinasi berupa:

MOVE.W punca,destinasi

yang mana punca dan destinasi menentukan kedudukan kendalian. Setiap suruhan yg boleh dilakukanoleh 68000 mempunyai opkod berlainan. Suruhan-suruhan boleh dikategorikan menurut jumlahkendalian iaitu dua kendalian, satu kendalian atau tiada kendalian langsung. Berikut adalah contohtiga suruhan yang sah:

MOVE.W D0,D1 ;suruhan dua kendalianCLR.W D1 ;suruhan satu kendalianNOP ;suruhan tanpa kendalian

Suruhan-suruhan selalunya dikategorikan menurut operasi asas yang dilakukannya:

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 22: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

18 Bab 2. Ciri Perisian 68000

• pemindahan data

• aritmetik

• logik

• putar dan anjak

• olahan bit

• BCD

• kawalan aturcara

• kawalan sistem

Sesetengah suruhan mempunyai variasi yang beroperasi secara yang lebih khusus. Jadual 2.3menunjukkan variasi suruhan asas.

Suruhan-suruhan akan diliputi secara berperingkat-peringkat. Suruhan pemindahan data diliputidalam Bab 3 (mod alamat). Suruhan aritmetik, logik, putar dan anjak, olahan bit dan BCD merupakansuruhan yang mengubah atau memproses data. Ini diliputi dalam Bab 5 (suruhan olahan data). Suruhankawalan aturcara diliputi dalam Bab 6 dan Bab 7. Akhir sekali, disebabkan suruhan kawalan sistemlebih khusus, ia diliputi dalam Bab 13.

2.5 Beberapa Suruhan Asas

Untuk memberi pengenalan kepada set suruhan 68000, tiga suruhan asas diterangkan di bawah iaituCLR, MOVE dan ADD.

Suruhan CLR

Suruhan CLR (clear) ialah suruhan satu kendalian dengan format

CLR.s <ea>

yang mana s ialah B, L, atau W dan <ea> adalah alamat berkesan destinasi. Operasi ini memadam ataumeletakkan sifar di destinasi yang ditetapkan. Operasi ini boleh ditakrifkan secara padat menggunakanRTL16 seperti berikut

0→ destinasi

yang bermaksud gantikan destinasi dengan sifar.Keterangan lengkap mengenai suruhan CLR didapati dalam Users Manual. Keterangan mengenai

suruhan menjelaskan destinasi yang dibenarkan, dalam bentuk mod alamat17. Ciri-ciri lain yangdiperincikan termasuk saiz data yang dibenarkan bagi sesuatu suruhan, kesan terhadap CCR, dan formatbahasa mesin.

16Register Transfer Language17addressing mode

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 23: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.5. Beberapa Suruhan Asas 19

Jadual 2.2: Set suruhan 68000.

Mnemonik Makna FungsiABCD Add decimal with extend Tambah BCD dengan bendera XADD Add binary TambahAND Logical AND AND logikASL Arithmetic shift left Anjak aritmetik kiriASR Arithmetic shift right Anjak aritmetik kananBcc Branch conditionally Cabang bersyarat

BCHG Bit test and change Uji bit dan tukarBCLR Bit test and clear Uji bit dan padamBRA Branch always Cabang sentiasaBSET Bit test and set Uji bit dan setBSR Branch to subroutine Cabang ke subrutin

BTST Bit test Uji bitCHK Check register with bounds Semak daftar dengan batasanCLR Clear operand Padam kendalianCMP Compare BandingDBcc Decrement and branch conditionally Susut dan cabang bersyaratDIVS Signed divide Bahagi bertandaDIVU Unsigned divide Bahagi tak bertandaEOR Exclusive OR ATAU eksklusifEXG Exchange registers Tukarganti daftarEXT Sign extend Panjangkan tandaJMP Jump to effective address LompatJSR Jump to subroutine Lompat ke subrutinLEA Load effective address Isi alamat berkesanLINK Link stack Kait tindananLSL Logical shift left Anjak logik kiriLSR Logical shift right Anjak logik kanan

MOVE Move source to destination Alih punca ke destinasiMULS Sign multiply Darab bertandaMULU Unsigned multiply Darab tak bertandaNBCD Negate decimal with extend Nafi BCD dengan bendera XNEG Negate NafiNOP No operation Tiada operasiNOT One’s complement Pelengkap satuOR Logical OR OR

PEA Push effective address Letak alamat ke tindananRESET Reset external devices Reset peranti luar

ROL Rotate left Putar kiriROR Rotate right Putar kanan

ROXL Rotate left through extend Putar kiri menerusi XROXR Rotate right through extend Putar kanan menerusi XRTE Return from exception Kembali daripada kekecualianRTR Return and restore Kembali dan perbetulRTS Return from subroutine Kembali daripada subrutin

SBCD Subtract decimal with extend Tolak BCD dengan bendera XScc Set conditionally Set bersyarat

STOP Stop processor Henti pemprosesSUB Subtract binary Tolak

SWAP Swap data register halves Tukarganti atas/bawah daftarTAS Test and set operand Uji dan set kendalian

TRAP Trap PerangkapTRAPV Trap on overflow Perangkap jika limpahan

TST Test operand Uji kendalianUNLK Unlink stack Buang kaitan tindanan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 24: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

20 Bab 2. Ciri Perisian 68000

Jadual 2.3: Variasi set suruhan 68000.

Mnemonik Makna FungsiADDA Add address Tambah alamatADDI Add immediate Tambah data terdekatADDQ Add quick Tambah pantasADDX Add with extend Tambah dengan bendera XANDI Logical AND immediate AND data terdekat

ANDI to CCR Logical AND immediate to CCR AND data terdekat dengan CCRANDI to SR Logical AND immediate to SR AND data terdekat dengan SR

CMPA Compare address Banding alamatCMPI Compare immediate Banding data terdekat

CMPM Compare memory Banding ingatanEORI Logical exclusive OR immediate OR eksklusif data terdekat

EORI to CCR Logical exclusive OR immediate OR eksklusif data terdekatto CCR dengan CCR

EORI to CCR Logical exclusive OR immediate OR eksklusif data terdekatto SR dengan SR

MOVE from SR Move from SR to destination Alih daripada SR ke destinasiMOVE to CCR Move from source to CCR Alih daripada punca ke CCRMOVE to SR Move from source to SR Alih daripada punca ke SR

MOVE USP Move user stack pointerAlih penunjuk tindananpengguna

MOVEA Move address Alih ke daftar alamatMOVEM Move multiple registers Alih berbilang daftarMOVEP Move peripheral data Alih data periferalMOVEQ Move quick Alih pantasNEGX Negate with extend Nafi dengan bendera X

ORI Logical OR immediate OR data terdekatORI to CCR Logical OR immediate to CCR OR data terdekat dengan CCRORI to SR Logical OR immediate to SR OR data terdekat dengan SR

SUBA Subtract address Tolak daripada daftar alamatSUBI Subtract immediate Tolak data terdekatSUBQ Subtract quick Tolak pantasSUBX Subtract with extend Tolak dengan bendera X

Contoh:

Jika daftar D0 mengandungi $FA1234DE, apakah isinya selepas suruhan CLR.W D1?

Penyelesaian:

Suruhan CLR.W D1 memadam hanya kata rendah D1. Kata atas tidak terjejas. Oleh itu, D1 menjadi$FA120000.

Suruhan MOVE

Suruhan pemindahan data terpenting ialah MOVE (gerak). Suruhan ini mempunyai dua kendaliandengan format

MOVE.s <sea>,<dea>

yang mana s ialah B, L atau W. Kendalian <sea> ialah alamat berkesan punca dan kendalian <dea>ialah alamat berkesan destinasi. Suatu salinan data di kendalian punca disalin ke kendalian destinasi.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 25: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.6. Pengenalan kepada Mod Alamat 21

Walaupun suruhan ini diberi nama gerak, operasi sebenarnya menyalin data kerana kendalian puncatidak berubah. Suruhan ini boleh memindahkan data antara daftar dengan ingatan. RTL untuk suruhanini ialah

punca→ destinasi

yang bermaksud data dari punca dipindahkan ke destinasi.

Suruhan ADD

Salah satu suruhan aritmetik ialah ADD (tambah). Suruhan ini mempunyai dua kendalian dengan format

ADD.s <sea>,<dea>

yang mana s ialah B, L atau W. RTL untuk suruhan ini ialah

punca+destinasi→ destinasi

Kendalian punca ditambahkan kepada kendalian destinasi kemudian hasil tambah disimpan dikendalian destinasi. Oleh itu, nilai kendalian destinasi berubah selepas suruhan dilaksanakan.

2.6 Pengenalan kepada Mod Alamat

Mod alamat ialah penentu bagi mendapatkan data yang terletak dalam daftar atau dalam ingatan. Modalamat memberitahu pemproses bagaimana ia mendapatkan kedudukan kendalian sebenar. Kedudukansebenar lebih dikenali sebagai alamat berkesan18 dan dijana semasa perlaksanaan suruhan.

Peranti 68000 adalah pemproses berkuasa tinggi dengan mod-mod alamat yang canggih. Inimemudahkan pengaturcaraan bahasa himpunan kerana sesuatu kedudukan data boleh dicapai denganmenggunakan jumlah suruhan yang sedikit. Pemproses 68000 mempunyai 14 mod alamat kesemuanyayang boleh dikumpulkan kepada enam mod asas.

• Daftar langsung19 — Alamat berkesan ialah daftar yang dinyatakan.

• Mutlak20 — Alamat berkesan terkandung di dalam suruhan dan digunakan secara langsung(mutlak) tanpa perubahan.

• Daftar tak langsung21 — Alamat berkesan terletak di dalam daftar. Kendalian terletak di alamatyang terdapat di dalam daftar.

• Terdekat22 — Kendalian adalah sebahagian daripada suruhan dan tidak perlu dicari lagi.

• Relatif pembilang aturcara23 — Alamat berkesan dikira dengan mengambil nilai PC danmenambah atau menolak nilai sesaran24. Harus diingati PC sentiasa menuding ke suruhanberikutnya.

• Tersirat25 — Kendalian ialah daftar yang dinyatakan oleh mnemonik dalam suruhan seperti SR,USP, SSP atau PC.

18effective address atau ringkasnya ea19register direct20absolute21register indirect22immediate23program counter relative24offset25inherent

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 26: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

22 Bab 2. Ciri Perisian 68000

Pengalamatan Daftar Langsung

Dalam mod pengalamatan daftar langsung alamat atau lokasi kendalian dinyatakan secara langsungsebagai sebagai sebahagian daripada suruhan. Oleh itu, tiada sebarang pengiraan diperlukan bagimendapatkan alamat berkesan. Dalam pengalamatan daftar langsung, kendalian terletak di dalam suatudaftar data atau alamat.

Format am bagi suruhan CLR menggunakan pengalamatan daftar data langsung ialah

CLR.s Dn

yang mana kendalian dengan panjang s yang dipadam terletak dalam daftar Dn, yang bermakna salahsatu daripada D0, D1, , D7. Oleh itu

CLR.W D1

memadam kata rendah dalam daftar D1. Suruhan MOVE memerlukan dua kendalian dengan format

MOVE.s Dm,Dn

Oleh itu, suruhan

MOVE.B D0,D1

menyalin D0[7:0] ke D1[7:0].

Pengalamatan Mutlak

Dalam mod pengalamatan mutlak alamat atau lokasi kendalian dinyatakan secara langsung sebagaisebagai sebahagian daripada suruhan. Oleh itu, tiada sebarang pengiraan diperlukan bagi mendapatkanalamat berkesan. Dalam pengalamatan mutlak, kendalian terletak di dalam suatu lokasi ingatan.Kendalian kata dan kata panjang mesti diletakkan dalam lokasi genap.

Format am bagi suruhan CLR menggunakan pengalamatan mutlak ialah

CLR.s XXXX

yang mana kendalian bersaiz s yang dipadam terletak dalam lokasi XXXX di ingatan. Oleh itu

CLR.W $2000

memadam kata yang terletak di alamat 2000 perenambelasan. Nilai XXXX dianggap perpuluhan kecualijika diawali oleh simbol $ untuk menandakan bahawa ini ialah nilai perenambelasan. Suruhan

MOVE.W 2000,D2

bermakna salin 16 bit dari lokasi 2000 perpuluhan ke D2[15:0].

Pengalamatan Tak Langsung

Dalam mod pengalamatan tak langsung, suatu daftar alamat digunakan sebagai punca alamat suatukendalian dalam ingatan. Isi daftar alamat dianggap penuding ke lokasi tersebut. Kendalian katadan kata panjang mesti diletakkan dalam lokasi genap. Mod ini dikenali dengan tanda kurungan yangmengelilingi nama satu daftar alamat seperti dalam suruhan berikut

CLR.B (A0)

Dalam suruhan ini, satu byte yang terletak di ingatan akan dipadam. Alamat byte ialah apa-apa nilaiyang terdapat dalam daftar A0.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 27: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.7. Format Suruhan Mesin 23

Pengalamatan Relatif

Dalam mod pengalamatan relatif nilai alamat kendalian didapati dengan menambah suatu sesaran kepadanilai dalam pembilang aturcara. Alamat berkesan didapati dengan melalui ungkapan

PC + sesaran→ ea

Nilai sesaran mempunyai tanda positif atau negatif. Simbol * merujuk kepada nilai semasa pembilangaturcara. Oleh itu

BRA *+2

menyebabkan operasi cabang ke alamat dua byte ke hadapan.

Pengalamatan Terdekat

Dalam mod pengalamatan terdekat menyatakan suatu nilai malar. Nilai ini terletak di dalam suruhan.Contohnya

MOVE.B #’m’,D2

Menyalin nilai ASCII untuk m ke dalam daftar D0. Simbol # difahami oleh penghimpun untukmenandakan pengalamatan terdekat. Mod terdekat tidak dibenarkan sebagai kendalian destinasi.

2.7 Format Suruhan Mesin

Pemproses 68000 melaksanakan aturcara yang mengandungi suruhan bahasa mesin. Pengaturcarajarang-jarang menulis aturcara dalam bahasa mesin kerana adalah lebih produktif menulis aturcarabahasa himpunan kemudian menterjemahkannya ke bahasa mesin. Bagaimanapun, kefahaman men-genai format bahasa mesin membolehkan pengaturcara mempergunakan keupayaan mikropemprosessepenuhnya.

Setiap suruhan mesin untuk 68000 terdiri daripada sekurang-kurangnya satu kata 16 bit. Iaboleh mengandungi sehingga empat kata lanjutan. Kata pertama dalam suruhan, iaitu kata operasi26,mengandungi maklumat tentang operasi, saiz data dan mod alamat. Kata lanjutan ditambah kepadasuruhan untuk kendalian terdekat, alamat berkesan punca dan alamat berkesan destinasi. RujukRajah 2.5 untuk susun atur suatu suruhan.

Bit-bit yang mentakrifkan suruhan bermula dari bit tertinggi (bit 15) kata operasi. Jumlah bit sebenarbagi takrifan suruhan bergantung kepada suruhan. Pemproses 68000 akan menyemak dahulu nibeltertinggi (bit 15:12) . Maksud nibel ini ditunjukkan di Jadual 2.4. Baki bit dalam kata operasi digunakanuntuk menjelaskan lagi operasi yang perlu dilakukan.

26control word

Rajah 2.5: Format suruhan mesin

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 28: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

24 Bab 2. Ciri Perisian 68000

Jadual 2.4: Kod operasi pemproses 68000.

Bit 15:12 Operasi Bit 15:12 Operasi0000 Olahan bit/MOVEP/Terdekat 1000 OR/DIV/SBCD0001 Gerak byte 1001 SUB/SUBX0010 Gerak kata panjang 1010 Emulator A0011 Gerak kata 101 CMP/EOR0100 Pelbagai 1100 AND/MUL/ABCD/EXG0101 ADDQ/SUBQ/Scc/DBcc 1101 ADD/ADDX0110 Bcc/BSR 1110 Anjak/Putar0111 MOVEQ 1111 Emulator F

Rajah 2.6 menunjukkan format am untuk suruhan satu kendalian. Bit 15:6 mentakrifkan operasiyang akan dilakukan. Bit 5:0 ialah medan alamat berkesan yakni maklumat mengenai kedudukankendalian. Ia terbahagi kepada medan mod dan medan daftar. Pemproses 68000 mempunyai 14 modalamat. Salah satu mod asas ialah mod daftar langsung, yang mana maklumat yang diolah terletak dalamdaftar data (D0-D7). Mod daftar langsung ditentukan oleh bit 000 dalam medan mod dan nombor daftar(0-7) dalam medan daftar. Rujuk Jadual 2.5 untuk mod-mod alamat yang dibenarkan.

Rajah 2.6: Format am suruhan mesin satu kendalian.

Jadual 2.5: Mod alamat bagi MC68000

Mod Daftar Mod alamat Sintaks000 rrr Daftar data langsung Dn001 rrr Daftar alamat langsung An010 rrr Daftar alamat tak langsung (ARI) (An)011 rrr ARI dengan pascatokok (An)+100 rrr ARI dengan prasusut -(An)101 rrr ARI dengan ofset N(An)110 rrr ARI dengan ofset dan indeks N(An,Xm)111 000 Mutlak pendek $XXXX111 001 Mutlak panjang $XXXXXXXX111 010 PC relatif dengan ofset N(PC)111 011 PC relatif dengan ofset dan indeks N(PC,Xm)111 100 Terdekat #$XXXX

Untuk menunjukkan bagaimana pola bit suruhan mesin didapati, kita kaji semula suruhan CLR,MOVE dan ADD.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 29: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.7. Format Suruhan Mesin 25

Suruhan Mesin untuk CLR

Rajah 2.7a ialah format suruhan mesin untuk operasi CLR. Pola 0100 dalam bit 15:12 digunakan olehberbagai-bagai suruhan. Oleh itu, pola 0010 dalam bit 11:8 digabungkan dengan pola 0100 dalam nibelteratas mentarifkan operasi CLR. Rajah 2.7(b) menunjukkan format mesin untuk suruhan CLR.B D0.

(a) Format am untuk CLR.

(b) Contoh bagi suruhan CLR.B D0.

Rajah 2.7: Suruhan mesin untuk CLR.

Suruhan Mesin untuk MOVE

Suruhan MOVE merupakan suruhan dua kendalian dengan satu kendalian punca dan satu kendaliandestinasi. Format am suruhan MOVE ditunjukkan dalam Rajah 2.8(a). Terdapat tiga format berbezauntuk setiap saiz data yang dibenarkan.

Dalam suruhan MOVE, alamat berkesan untuk kendalian punca mempunyai format yang samadengan alamat berkesan suruhan satu kendalian, iaitu medan mod di kiri (bit 5:3) dan medan daftardi kanan (bit 2:0). Untuk kendalian destinasi, kedudukan medan terbalik, iaitu medan mod di kanan (bit8:6) dan medan daftar di kiri (11:9). Keadaan ini mudah mengelirukan jika kita bekerja dalam bahasamesin sepenuhnya, tetapi itulah hasil kerja perekabentuk 68000 akibat ingin memudahkan mikrokodnya.

(a) Format am untuk MOVE.

(b) Contoh bagi suruhan MOVE.W D7,D0.

Rajah 2.8: Suruhan mesin untuk MOVE.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 30: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

26 Bab 2. Ciri Perisian 68000

Rajah 2.8(b) menunjukkan format mesin untuk suruhan MOVE.W D7,D0 iaitu 0011 0000 00000111. Suruhan ini memindahkan kata bawah D7 ke kata bawah D0. Kata bawah D0 akan berubahmanakala kata atas D0 serta keseluruhan D7 tidak berubah.

Suruhan Mesin untuk ADD

Suruhan ADD adalah suruhan dua kendalian tetapi format mesinnya tidak serupa dengan suruhanMOVE. Untuk suruhan ADD, salah satu atau kedua-dua kendaliannya mestilah daftar data. Nibel terataskata operasi ialah 1101. Bit 11:9 menentukan daftar data yang digunakan. Bit 8:6 ialah medan opmodyang menentukan mod operasi. Jika destinasi hasil tambah ialah daftar data, medan opmod bernilai 000,001 atau 010 untuk kendalian byte, kata atau kata panjang. Jika destinasi hasil tambah bukan daftar data,medan opmod bernilai 100, 101 atau 110.

(a) Format am untuk ADD.

(b) Contoh bagi suruhan ADD.W D1,D0.

Rajah 2.9: Suruhan mesin untuk ADD.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 31: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

2.8. Latihan 27

2.8 Latihan

1. Apakah saiz bas data dan saiz bas alamat 68000?

2. Berapakah jumlah bit dalam daftar status 68000 yang digunakan? Berapa bitkah yang bolehdigunakan dalam mod pengguna?

3. Apakah daftar yang mesti diberikan satu nilai awal sebelum melaksanakan suatu aturcara?

4. Apakah nilai bendera C dalam jika daftar status berisi nilai $2705?

5. Kata panjang $01020305 terletak di alamat $2020. Byte $03 terletak dalam alamat mana?

6. Berikan format mesin untuk suruhan CLR.B D7.

7. Berikan format mesin untuk suruhan MOVE.L D5,D3.

8. Berikan format mesin untuk suruhan ADD.W D2,D3.

9. D0 berisi $11223344 sebelum MOVE.W #$2211,D0 dilaksanakan. Apakah isinya selepas suruhanini?

10. D0 berisi $49828934 dan D1 berisi $92385938 sebelum suruhan MOVE.B D0,D1 dilaksanakan.Apakah nilai kedua-dua daftar selepas suruhan ini?

11. Apakah yang salah dengan suruhan MOVE.W #200,$FFF?

12. Suatu nilai kata panjang terletak di alamat $2020. Apakah alamat kata panjang yang menurutinilai ini?

13. D4 berisi $FFFFFFF sebelum suruhan MOVE #1,D4 dilaksanakan. Apakah isinya selepassuruhan ini?

14. Apakah perbezaan antara suruhan MOVE.W #$2000,D0 dengan MOVE.W $2000,D0?

15. Jika alamat $1000 berisi 1919 dan D1 berisi $20202020, apakah nilai D1 selepas suruhan ADD$1000,D1?

16. Tukar suruhan mesin $4241 ke bentuk bahasa himpunan setara.

17. Tukar suruhan mesin $3007 ke bentuk bahasa himpunan setara.

18. Dengan menggunakan nilai perenambelasan untuk kesemua jawapan anda, tentukan operasi danlokasi yang terbabit dalam suruhan-suruhan berikut

(a) CLR.L $8000

(b) MOVE.W 2000,3000

(c) MOVE.W $2000,D0

(d) MOVE.W 2000,D0

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 32: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

28 Bab 2. Ciri Perisian 68000

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 33: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 3

Bahasa Himpunan

Objektif

• Menerangkan proses penulisan aturcara

• Penggunaan penghimpun

• Menulis aturcara asas

Pengenalan

Bab ini memperkenalkan anda kepada proses penulisan aturcara untuk pemproses 68k. Anda akan meli-hat langkah-langkah dalam penulisan aturcara bahasa himpunan. Seterusnya anda akan diperkenalkankepada penyata-penyata bahasa himpunan.

3.1 Pembangunan Perisian

Pembangunan perisian adalah proses bagi menyediakan aturaca yang boleh dilaksanakan dalammikropemproses. Tugas yang perlu mikropemproses lakukan harus ditukarkan ke bentuk bahasa mesinyang difahami oleh pemproses. Terdapat beberapa fasa iaitu analisis masalah, pengekodan aturcara, danperlaksanaan.

Analisis Masalah

Analisis masalah adalah fasa bagi menukarkan tugas yang perlu dilakukan kepada suatu bentuk abstrakyang tidak khusus kepada mana-mana mesin atau pemproses. Dalam fasa ini, pengaturcara akanmenghasilkan sama ada carta alir (flowchart) atau pseudokod. Salah satu keadah ini boleh digunakanuntuk tujuan rekod dan dokumentasi. Carta alir berbentuk grafik dan lebih mudah difahami. Walaupunboleh dihasilkan dengan tangan dengan cepat, carta alir dalam bentuk salinan lembut agak sukardihasilkan tanpa perisian yang khusus. Pseudokod pula adalah program olok-olok yang biasanya ditulisdalam bahasa pengaturcaraan yang menyerupai C atau Pascal. Ia tidak boleh dilaksanakan terus keranaia menggunakan sintaks C atau Pascal yang dipermudahkan. Kaedah pseudokod lebih mudah bagipenulisan dokumentasi menggunakan perisian pemprosesan perkataan.

Pengekodan

Fasa kedua dalam penulisan adalah pengekodan. Dalam fasa ini, pengaturcara menyediakan aturcaradalam bentuk fail punca1 menggunakan penyunting. Aturcara yang terkandung dalam fail ini boleh

1source file

29

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 34: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

30 Bab 3. Bahasa Himpunan

disebut kod punca2 kerana ia berbentuk kod yang tidak difahami oleh orang yang di dalam bidang ini.Penyunting adalah sebarang perisian PC yang boleh menyediakan fail teks ASCII seperti NotePad atauperisian khusus bagi pengatucara seperti SciTE atau Programmers Notepad. Penggunaan pemprosesanperkataan seperti Word boleh digunakan tetapi ia terlalu berat bagi tugas yang mudah ini dan langkahtambahan selalunya diperlukan untuk memastikan fail yang terhasil adalah dalam bentuk teks ASCII.Selepas fail punca disediakan, ia mesti dihimpun bagi menghasilkan aturcara yang difahami komputer.

Rajah 3.1: Penghimpun dan fail-fail yang terlibat dengannya.

Di dalam penulisan aturcara, kerapkali berlaku kesilapan atau nama teknikalnya, ralat. Terdapatdua jenis ralat iaitu ralat sintaks3 dan ralat semantik4. Ralat sintaks adalah kesilapan dalam penulisanaturcara seperti terlebih atau terkurang koma. Ralat ini dikesan awal dan mudah diperbaiki. Ralatsemantik adalah kesilapan logik seperti melakukan sesuatu operasi apabila ia tidak sepatutnya berlaku.Ralat ini hanya akan ketara apabila aturcara dilaksanakan. Setiap ralat perlu diperbetulkan menggunakanpenyunting.

Setelah fail punca dihasilkan, ia diproses dengan penghimpun. Rajah 3-1 menunjukkan fail-failyang terlibat dalam penggunaan penghimpun. Fail punca dihimpun bagi menghasilkan dua fail: failobjek5 dan fail senarai6. Fail objek mengandungi aturcara bahasa mesin yang boleh dilaksanakan. Failsenarai berbentuk rekod yang melaporkan dengan terperinci kaitan antara maklumat dalam fail puncadengan fail objek. Fail senarai tidak semestinya dijana setiap masa tetapi ia berguna untuk dokumentasidan untuk mengesan ralat. Sekiranya terdapat ralat sintaks, fail objek tidak dihasilkan dan pengaturcaraboleh merujuk fail senarai untuk mengetahui di mana kesilapan berlaku. Ralat semantik sebaliknyatidak boleh dikesan oleh penghimpun, dan pengaturcara perlu merujuk fail senarai semasa melaksanakanaturcara.

Jika tidak terdapat ralat sintaks, pengaturcara boleh ke fasa terakhir iaitu fasa pengujian. Dalam fasaini, aturcara dilaksanakan untuk mencari ralat semantik, jika ada, dan memantau prestasi aturcara.

Contoh Fail Punca, Senarai dan Objek

Berikut adalah contoh aturcara punca:

*-----------------------------------------------------------* Program : SALAM* Written by : Muhammad Mun’im A. Zabidi* Date : 2009-01-04* Description: Program yang memaparkan satu mesej ringkas*-----------------------------------------------------------START ORG $1000

LEA STRING,A1

2object code3syntax error4semantic error5object file6listing file

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 35: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.1. Pembangunan Perisian 31

MOVE.W #13,D0TRAP #15

MOVE.B #9,D0TRAP #15 Halt Simulator

STRING DC.B ’SALAM DARI DUNIA MIKRO’,0

END START

Aturcara di bawah ialah aturcara punca yang telah dihimpun.

001000 Starting AddressAssembler used: EASy68K Editor/Assembler v3.7.5 Jan-19-2008Created On: 1/4/2009 7:33:41 AM

000000 1 *---------------------------------------------------------000000 2 * Program : SALAM000000 3 * Written by : Muhammad Mun’im A. Zabidi000000 4 * Date : 2009-01-04000000 5 * Description: Program yang memaparkan satu mesej ringkas000000 6 *---------------------------------------------------------001000 7 START ORG $1000001000 8001000 43F9 00001012 9 LEA STRING,A1001006 303C 000D 10 MOVE.W #13,D000100A 4E4F 11 TRAP #15

Rajah 3.2: Langkah-langkah dalam pengekodan dan pengujian bahasa himpunan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 36: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

32 Bab 3. Bahasa Himpunan

00100C 1200100C 103C 0009 13 MOVE.B #9,D0001010 4E4F 14 TRAP #15 Halt Simulator001012 15001012= 53 41 4C 41 ... 16 STRING DC.B ’SALAM DARI DUNIA MIKRO’,0001029 17001029 18 END START

No errors detectedNo warnings generated

SYMBOL TABLE INFORMATIONSymbol-name Value-------------------------START 1000STRING 1012

Kod mesin disimpan di dalam fail berbentuk ASCII perenambelasan. Bagi pemproses Motorola, failini dinamai fail S-record. Berikut adalah aturcara di atas dalam bentuk S-record.

S021000036384B50524F47202020313143524541544544204259204541535936384B6DS125100043F900001012303C000D4E4F103C00094E4F53414C414D20444152492044554E494125S10A1022204D494B524F0021S804001000EB

Jadual 3.1 menerangkan makna maklumat dalam setiap S-record.

Jadual 3.1: Makna data dalam fail S-record.

Medan KeteranganJenis Rekod S0 = rekod pertama

S1 = rekod data (dengan alamat 16 bit)S2 = rekod data (dengan alamat 24 bit)S8 = rekod terakhir (fail dengan rekod-rekod S2S9 = rekod terakhir (fail dengan rekod-rekod S1)

Kiraan byte Jumlah byte perenambelasan yang menuruti dalam rekod semasaAlamat Alamat ingatan pertama untuk byte data dalam rekod semasa

Byte Data Data perenambelasanJumlah Semak Nilai yang menghasilkan FF apabila ditambahkan kepada hasil tambah

kesemua byte sebelumnya (mod 256, tidak termasuk Jenis Rekod)

Pengujian Aturcara

Fasa pengujian bertujuan mengesan kesilapan semantik. Dalam fasa ini, aturcara diberi pelbagai inputuntuk memastikan ia berfungsi seperti dijangka. Ambil contoh suatu aturcara mengambil dua input,menambah kedua-duanya kemudian mengeluarkan hasil tambah. Jika hasil tambah yang sepatutnyatidak dikeluarkan, aturcara sudah pasti mempunyai masalah dari logik aturcara. Aturcara ini perludisunting semula, dihimpun dan dilaksanakan semula sehingga hasil yang sepatutnya diperolehi.

Setelah aturcara melepasi fasa pengujian, bolehlah ia digunakan dalam keadaan muktamad. Jikaaturcara disasarkan untuk suatu produk, kini ia boleh dikilangkan dalam kuantiti yang banyak.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 37: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.2. Perlaksanaan Aturcara 33

3.2 Perlaksanaan Aturcara

Terdapat tiga kaedah melaksanakan aturcara bahasa himpunan iaitu:

• Komputer papan tunggal

• Simulator

• Sistem sebenar

Kaedah pertama melaksanakan aturcara 68k ialah menggunakan komputer papan tunggal (SBC7).Contoh komputer begini ialah Flight68K. Kaedah ini amat sesuai bagi pembelajaran bahasa himpunan68k tetapi kos SBC terbabit mengehadkan jumlah pelajar yang boleh menggunakannya pada sesuatumasa. Untuk melaksanakan kod objek, ia dipindahkan dari PC melalui liang bersiri ke dalam papantersebut. SBC mengandungi aturcara monitor yang menerima aturcara kita lalu mengisikannya ke dalamRAM. Suruhan-suruhan dalam RAM boleh dilaksanakan satu persatu supaya kesan setiap suruhan bolehdisemak. Sekiranya ada ralat semantik, kod punca perlu disunting dan dihimpun sekali lagi.

Kaedah kedua adalah menggunakan simulator. Simulator meniru lagak mikropemproses 68kdalam PC secara perisian. Lajunya tidak sama dengan 68k sebenar dan ia tidak dapat meniru setiapperkakasan 68000. Oleh itu, ia selalunya tidak boleh melaksanakan aturcara yang melibatkan operasiinput/output kecuali untuk beberapa peranti terpilih. Bagaimanapun, simulator serta PC mudah didapatidan penggunaannya memadai bagi mempelajari asas bahasa himpunan. Contoh simulator yang bolehdidapati secara percuma ialah SIM68K dari University of Florida dan EASy68K dari SourceForge.

Kaedah ketiga ialah melaksanakan aturcara dalam sistem sasaran atau sistem sebenar. Sistemsebenar tentunya mempunyai set komponen yang berbeza dengan SBC. Contohnya, papan litar untukkawalan industri akan mempunyai peranti penukar analog-ke-digital tetapi tidak memerlukan liangperhubungan bersiri kerana ia beroperasi sendirian. Amnya, aturcara akan dibakar ke dalam ingatankekal seperti EPROM8 dan beroperasi dari sana. Ini berbeza dengan SBC yang melaksanakan aturcarayang terletak dalam RAM yang dimuat turun dari PC. Apabila sistem dipasang, sistem sebenar akanterus melaksanakan aturcara ini sehinggalah sistem dipadamkan. Aturcara yang terletak dalam ingatankekal boleh disebut perkukuhan9

Membangunkan perkukuhan lebih sukar kerana mengubah kandungan ingatan kekal tidak semudahRAM. Untuk membina sistem dengan bajet terhad, kod objek boleh dibakar ke dalam EPROM yangkemudiannya dimasukkan ke dalam soket dalam sistem. Sekiranya terdapat ralat atau penambahbaikan,EPROM boleh dipadam dan digunakan semula. Tanpa sebarang instrumentasi, proses mengesan ralatlebih kepada cuba-cuba yang membawa risiko kerosakan kepada komponen. Masalah yang ketara di siniialah proses memadam EPROM yang lama menyebabkan jurutera kurang produktif. Untuk menjimatkanmasa, EPROM boleh diganti dengan peranti EEPROM yang lebih mahal. Ia masih perlu dipadam tetapilebih selama EPROM.

Sekiranya ada peruntukan, terdapat pelbagai cara pembangunan perkukuhan yang lebih efisien.Dengan bajet lebih sedikit, jurutera boleh menggunakan emulator EPROM. Peralatan ini adalah RAMyang disambung ke soket EPROM dalam litar, dan jurutera tidak perlu menanggal dan memasukkansemula EPROM ke soket. Emulator amat menjimatkan masa kerana aturcara boleh diubah sertamertadari PC.

Bagi mereka yang mempunyai bajet besar, peralatan terbaik bagi pembangunan perkukuhan ialahemulator dalam litar (ICE10). ICE merupakan peralatan khusus mengandungi pemproses yang samadengan yang terdapat di papan sasaran. ICE dikawal dari PC dan disambungkan ke papan sasaranmelalui soket pemproses dan soket ingatan. Papan sasaran menggunakan pemproses dan ingatan yangterdapat dalam ICE. Sebarang perubahan aturcara dilakukan dengan memuat turun dari PC ke ICE.

7single-board computer8erasable programmable read-only memory9firmware

10in-circuit emulator

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 38: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

34 Bab 3. Bahasa Himpunan

Kaedah kemaskini aturcara adalah sama dengan penggunaan emulator EPROM. Apa yang membezakanICE ialah pemproses yang terdapat di dalamnya. Pemproses ini versi khas (dan mahal) yang bolehdikawal dari segala aspek dari PC. Dari PC, jurutera boleh melaksanakan aturcara dengan kelajuansebenar, dan boleh melihat dan mengawal segala aktiviti yang berlaku dalam setiap daftar dan bas padasistem sasaran.

Setelah aturcara yang dibangunkan dengan emulator EPROM atau ICE diuji dan dianggap bolehdigunakan, baharulah ia dianggap sedia untuk dibakar ke dalam EPROM dalam sistem.

3.3 Format Penyata

Aturcara bahasa himpunan terdiri daripada baris-baris penyata. Dalam setiap baris, kod mesin ditulisdalam bentuk mnemonik, dan alamat dan pemalar ditulis dalam bentuk simbolik. Setiap barismengandungi salah satu daripada yang berikut:

• suruhan mesin

• perintah penghimpun

• komen

Penyata punca mesti menurut format yang ditetapkan. Setiap penyata terdiri daripada beberapa medan:

Medan Medan Medan MedanLabel Opkod Kendalian Komen[label] opkod kendalian [[;]komen]

Setiap medan dipisahkan oleh satu atau lebih ruang atau aksara tab. Baris yang dimulai oleh bintang* di lajur pertama ialah komen dan diabaikan sepenuhnya oleh penghimpun.

Label

Label tidak semestinya ada dan hanya perlu jika sesuatu baris dirujuk oleh sesuatu suruhan lain. Jikalabel wujud, ia mesti bermula dari lajur satu. Jika aksara di lajur pertama ialah koma bertitik ; ataubintang *, penghimpun menganggap keseluruhan baris sebagai komen. Aksara pertama dalam labelmestilah aksara huruf (A-Z, a-z). Aksara seterusnya mestilah huruf atau nombor. Sebarang label tidakboleh digunakan lebih daripada sekali.

Opkod

Medan opkod mengandungi mnemonik suruhan bahasa mesin atau perintah penghimpun. Mnemoniksuruhan mestilah salah satu mnemonik sah yang terdapat dalam set suruhan 68000. Mnemoniksuruhan diterjemah menjadi kod mesin yang boleh dilaksanakan pemproses. Suruhan-suruhan bolehberoperasi terhadap byte, kata atau kata panjang. Saiz data dikenalpasti oleh imbuhan .B, .W atau .Lyang diletakkan selepas mnemonik suruhan. Contohnya, jika suruhan ialah ADD, opkod boleh jadiADD.B bermaksud tambah byte, tetapi ADD.W bermaksud tambah kata. Jika lanjutan tidak diberikan,penghimpun menganggapkannya .W untuk kebanyakan suruhan.

Perintah penghimpun memberikan suruhan kepada penghimpun bagi mengawal proses penghim-punan. Ia juga mentakrifkan nilai-nilai malar dan memperuntukkan ruang untuk data dalam ingatan.Perintah penghimpun tidak boleh diterjemah kepada kod mesin.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 39: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.4. Ungkapan dalam Medan Kendalian 35

Kendalian

Medan kendalian mengandungi kendalian yang diperlukan oleh suruhan/perintah yang muncul di medanopkod. Jumlah kendalian bergantung sepenuhnya kepada jenis suruhan/perintah.

Jika suruhan tidak mempunyai kendalian, medan ini mesti dikosongkan. Jika suruhan mempunyaisatu kendalian, hanya satu kendalian boleh wujud melambangkan destinasi. Untuk suruhan denganlebih daripada satu kendalian, kendalian-kendalian mesti dipisahkan dengan koma. Jangan gunakanruang kosong untuk memisahkan kendalian kerana penghimpun menganggapkannya penamat medankendalian.

Komen

Komen adalah catatan-catatan yang menjelaskan lagi operasi aturcara. Komen bagi keseluruhanaturcara atau subrutin diletakkan di awal aturcara atau subrutin dalam blok komen11. Komen bagipenyata-penyata diletakkan diletakkan di hujung penyata. Blok komen terdiri daripada baris-baris yangdimulakan oleh aksara ”*”12. Komen di hujung baris dimulakan oleh aksara ”;”13.

3.4 Ungkapan dalam Medan Kendalian

Kendalian sesuatu suruhan atau perintah ialah daftar, alamat ingatan atau ungkapan.

Simbol

Penggunaan simbol adalah salah satu kelebihan menggunakan bahasa himpunan berbanding bahasamesin. Simbol berbentuk rentetan 1 hingga 8 aksara yang bermula dengan huruf (A-Z). Simbol PC,SP, D0 hingga D7, A0 hingga A7, CCR, SR, dan USP adalah nama daftar yang boleh muncul dalammedan kendalian tetapi tidak dalam medan label.

Pemalar

Pemalar boleh berbentuk angka atau ASCII. Suatu turutan digit (contohnya, 12345) dianggap nomborperpuluhan. Turutan digit dimulai dengan tanda dolar ($) ditafsir sebagai nombor perenambelasan.Angka-angka juga boleh ditafsir sebagai perlapanan dan perduaan. Aksara-aksara yang dikelilingioleh aksara penyingkat14 “’” dianggap rentetan ASCII. Rujuk Jadual 3.2 untuk senarai imbuhan yangdibenarkan.

Jadual 3.2: Imbuhan untuk pemalar berangka.

Pemalar ContohInteger perpuluhan 18

Integer perenambelasan $18Integer perlapanan @18Integer perduaan %0111111Rentetan aksara ’WXY2’

11comment block12asterisk13semi-colon14apostrophe

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 40: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

36 Bab 3. Bahasa Himpunan

Pengoperasi Aljabar

Penghimpun membenarkan ungkapan yang terdiri daripada sebutan-sebutan yang digabungkan denganpengoperasi aritmetik dan logik. Contohnya, suruhan berikut mengisikan 17 ke dalam D0:

MOVE.W #3*4+7,D0

Pengoperasi aritmetik adalah + (tambah), – (tolak), * (darab), / (bahagi), dan % (modulo). Simbol– juga digunakan untuk operasi penafian apabila diletakkan di awal suatu sebutan; ia menyebabkansebutan ditolak daripada sifar. Simbol-simbol +, –, * dan / melakukan operasi yang sama dengan aljabarbiasa. Pengoperasi % mengambil baki selepas pembahagian dilakukan. Misalnya, 10%3 menghasilkan1.

Pengoperasi logik ialah ∼ (TAK), & (DAN), ! (ATAU), ˆ (ATAU eksklusif), << (anjak kiri), dan>> (anjak kanan). Pengoperasi ∼ merupakan pengoperasi yang beroperasi terhadap satu kendalianmanakala pengoperasi-pengoperasi lain terhadap dua kendalian. Pengoperasi ∼ diletakkan di hadapansebutan dan memberikan nilai pelengkap satu sebutan tersebut. Pengoperasi &, ! dan ˆ masing-masing melaksanakan operasi logik DAN, ATAU dan ATAU eksklusif terhadap kendalian-kendaliannya.Pengoperasi << dan >> menganjak sebutan kiri dengan jumlah kedudukan bit yang dinyatakan dalamsebutan kanan. Ruang bit yang dikosongkan diisi dengan nilai sifar.

Jadual 3.3 menunjukkan keutamaan pengoperasi. Jika pengoperasi kurungan () dijumpai, kandun-gannya dinilai lebih dahulu. Kesemua hasil penilaian mempunyai saiz 32 bit kemudian bit-bit dibuangbergantung kepada destinasi operasi. Contohnya, pemalar $123 yang disimpan dalam destinasi byteakan direpang menjadi $23.

Jadual 3.3: Keutamaan operator

Keutamaan Operator1 Penafian (–), NOT (∼)2 Anjak kiri (<<), anjak kanan (>>)3 AND (&), OR (!), XOR (ˆ)4 Darab (*), bahagi (/), modulo (%)5 Tambah (+), tolak (–)

Pembilang Lokasi

Simbol ”*” dalam medan kendalian merujuk kepada nilai semasa pembilang lokasi penghimpun.Contohnya, suruhan

BRA *+4

bermakna cabang sentiasa (branch always) ke lokasi 4 byte selepas suruhan cabang. Suruhan cabangsetempat ialah

BRA *

Contoh ini boleh ditulis juga seperti berikut:

SINI BRA SINI

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 41: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.5. Perintah Penghimpun 37

3.5 Perintah Penghimpun

Perintah penghimpun atau pseudo-op adalah suruhan kepada penghimpun bukan kepada pemproses.Berikut adalah beberapa perintah penghimpun yang mustahak.

ORG

Perintah ORG (origin) menetapkan alamat bagi suruhan atau data yang menuruti. Kendalian ORG ialahnilai mutlak. Formatnya ialah:

ORG alamat

EQU

Perintah EQU (equate) hanya memberikan nilai kepada suatu simbol. Formatnya ialah:

simbol EQU nilai

Dalam contoh berikut, SAIZ diberi nilai 20.

SAIZ EQU 20ORG $2000MOVE.W #SAIZ,D0

Perintah EQU sangat berguna dan patut dibiasakan. Pertamanya, ia memudahkan aturcara dibaca.Kedua, ia memudahkan aturcara diubah. Sesuatu simbol boleh digunakan beberapa kali dalam aturcara.Jika nilai simbol perlu diubah, ia cuma perlu diubah di suatu tempat iaitu di dalam penyata yangmenetapkan nilainya, dan kemudian aturcara dihimpun semula. Kesemua penggunaan simbol akanmenggunakan nilai yang baru.

Penghimpun membolehkan satu ungkapan digunakan dalam perintah ini. Contoh berikut adalah sah:

ROW EQU 5COLUMN EQU ROW+1ARRAY EQU ROW*COLUMN

Perintah EQU boleh digunakan untuk mengatasi had yang dikenakan terhadap perintah lain.Misalnya, perintah ORG tidak boleh mempunyai label. Turutan di bawah boleh digunakan untukmemberikan label kepada penyata pertama.

ORG $1000MULA EQU *

DC

Perintah DC (define constant) mengisikan nilai-nilai tertentu ke dalam ingatan. Ia mesti diberi imbuhanhuruf .B, .W atau .L bergantung kepada saiz pemalar. Pemalar yang ditakrifkan oleh perintah ini diisike dalam ingatan ke kedudukan semasa. Perintah DC.W 5 mengisikan $0005 ke dalam ingatan, tetapiPerintah DC.L mengisikan $00000005 ke dalam ingatan. Pemalar boleh disimpan berturutan denganmengasingkan setiap satu dengan koma. Formatnya ialah:

[label] DC nombor[,nombor][...]

Rajah 3.3 menunjukkan peta ingatan setelah turutan berikut:

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 42: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

38 Bab 3. Bahasa Himpunan

ORG $2000DC.W 3DC.B $23,49DC.L 10DC.B ’Input:’DC.W 1,4,9,16

Pastikan kata dan kata panjang bermula di alamat genap.

04

Rajah 3.3: Contoh penggunaan DC.

DS

Perintah DS (define storage) hampir sama dengan perintah DC tetapi ia tidak mengisikan sebarangmaklumat ke dalam ingatan. Jika DC menetapkan pemalar sebelum aturcara dilaksanakan, DS mempe-runtukkan ruang untuk pembolehubah yang dihasilkan oleh aturcara semasa aturcara berlangsung. DSjuga perlu ditambah dengan .B, .W atau .L. Label di kiri mengaitkan label dengan alamat pertama yangdiperuntukkan. Formatnya ialah:

[label] DS bilangan

Contoh-contoh berikut adalah sah:

ARRAY DS.W 1 Sediakan 1 kataSTRING DS.B 8 Sediakan 8 bytePTR DS.L 1 Sediakan ruang utk 2 kata panjang

Pastikan ruang yang disediakan oleh perintah DS diisi sebelum dibaca. Jika data dibaca sebelumdiisi sebarang nilai, nilainya rawak. Ini boleh menyebabkan ralat yang mungkin sukar dicari.

END

Perintah END hanya memberitahu penghimpun bahawa aturcara telah tamat. Tiada suruhan atauperintah lain perlu dihimpun selepas perintah ini. Formatnya ialah:

END [label]

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 43: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.6. Penggunaan Simulator 39

DS.L 1

Rajah 3.4: Contoh penggunaan DS.

Kebanyakan penghimpun menggunakan perintah ini tanpa kendalian. Terdapat juga penghimpunyang memerlukan satu parameter. Parameter ini memberitahu penghimpun tempat aturcara bermula jikadilaksanakan. Jika aturcara bermula di alamat $1000, perintah ini berupa END $1000.

3.6 Penggunaan Simulator

Untuk menulis aturcara bahasa himpunan, pengaturcara perlu mengetahui konfigurasi sistem. Maklumatpertama yang perlu diketahui ialah ruang ingatan yang boleh dimasukkan aturcara dan dimana letaknyaperanti I/O. Pemproses 68k mempunyai ruang ingatan sebesar 16 megabyte sedangkan sistem sebenarjarang benar perlu lebih daripada beberapa kilobyte, apa lagi untuk memenuhi keseluruhan peta ingatan.

Peta Ingatan

Pengguna SBC Flight68k lazimnya memulakan aturcara di alamat $400400. Dalam Flight68k, RAMbermula dari alamat $400000. Satu kilobyte di awal blok ini digunakan oleh sistem. Maka sebarangaturcara haruslah dimulakan seawal-awalnya di alamat $400400. SBC ini selalunya diisi dengan duaunit RAM sebesar 8 atau 32 kilobyte setiap satu. Oleh itu aturcara pengguna yang boleh dimuat turundari PC tidak mungkin melebihi 64 kilobyte.

Rajah 3.5: Peta ingatan SBC Flight68k (kiri) dan simulator EASy68K (kanan).

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 44: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

40 Bab 3. Bahasa Himpunan

Bagi simulator pula, situasinya amat berbeza kerana simulator tiada had saiz ingatan. Secarateorinya, mana-mana simulator boleh menyediakan ingatan sebanyak 16 megabyte, ditolak sedikit untukblok input/output. Rajah 3.5 menunjukkan peta ingatan bagi SBC Flight68k dan simulator EASy68K.Ternyata ruang “RAM” yang disediakan oleh EASy68K jauh lebih besar iaitu dari $001000 hingga$EFFFFE.

Templat Aturcara

Bagi menyeragamkan aturcara-aturcara yang kita tulis, sebaik-baiknya disediakan satu templat yangmenyediakan kerangka yang sentiasa diperlukan bagi sebarang aturcara. Terdapat tiga blok utama dalammana-mana aturcara:

• Komen keseluruhan

• Seksyen CODE

• Seksyen DATA

Rajah 3.6: Templat bagi penulisan aturcara dalam EASy68K.

Komen keseluruhan menerangkan fungsi aturcara. Ia juga menyatakan nama penulis aturcara, tarikhia diubah (dan mungkin tarikh mula-mula ditulis) dan versi aturcara.

Seksyen CODE ialah tempat menulis suruhan-suruhan bahasa himpunan yang boleh dilaksanakanoleh pemproses. Ia dimulakan oleh perintah ORG menandakan alamat suruhan pertama dalam aturcara.Seksyen ini ditamatkan oleh satu atau dua suruhan yang mengembalikan kawalan ke pengawas sistematau simulator. Biasanya ia terdiri daripada satu suruhan TRAP didahului oleh satu suruhan lain. Rujubuku manual untuk turutan sebenar. Bagi sistem yang beroperasi berterusan, suruhan ini tidak perlu.Dalam kes ini, suruhan terakhir besar kemungkinan adalah suruhan cabang yang menyebabkan aturcaradiulang dari mula.

Seksyen DATA menyusul seksyen CODE. Kebiasaannya, seksyen ini dipenuhi oleh perintah DSdan DC bagi menetapkan data yang digunakan oleh kod. Sekiranya seksyen ini dimulakan sebaik

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 45: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.6. Penggunaan Simulator 41

sahaja seksyen CODE tamat, perintah DS atau DC boleh terus digunakan. Sekiranya seksyen ini perludiletakkan di lokasi tertentu, suruhan ORG kedua digunakan untuk menjauhkan seksyen ini denganseksyen sebelumnya. Pastikan setiap perintah ORG serasi dengan platform tempat aturcara beroperasi,dan kedua-dua seksyen tidak bertindan.

Contoh Larian EASy68K

Seksyen ini menunjukkan demonstrasi penggunaan pakej EASy68K. Perisian ini terdiri daripadadua perisian berbeza iaitu penyunting/penghimpun EASy68K dan simulator SIM68K. Untuk tujuanperbincangan, EASy68K akan merujuk kedua-dua perisian.

Rajah 3.7: Paparan awal apabila membuka EASy68K.

Apabila mula-mula dilancarkan, EASy68K akan terus memberikan satu templat aturcara sepertidalam Rajah 3.7. Ia diulang di bawah sebagai rujukan.

1 *-----------------------------------------------------------2 * Program :3 * Written by :4 * Date :5 * Description:6 *-----------------------------------------------------------7 START ORG $100089

1011 MOVE.B #9,D012 TRAP #15 Halt Simulator1314 END START

• Baris 1 hingga 6 adalah komen keseluruhan. Maklumat ini memudahkan anda mengingat fungsikeseluruhan aturcara. Kkeenam-enam baris ini boleh dipadam tanpa memberi kesan terhadaplarian aturcara.

• Baris 7 adalah perintah START ORG $1000 yang menyatakan aturcara dimulakan di alamat$1000.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 46: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

42 Bab 3. Bahasa Himpunan

• Baris 8 hingga 10 adalah beberapa baris kosong tempat anda meletakkan aturcara. Tambahkanseberapa banyak baris yang perlu untuk melengkapkan aturcara anda.

• Baris 11 dan 12 adalah turutan suruhan bagi menghentikan aturcara dan mengembalikan kawalanke simulator. Anda boleh padam baris-baris ini jika aturcara beroperasi berterusan tanpa henti.

• Baris 4 adalah suruhan END START yang memberitahu penghimpun bahawa nilai PC awal ialahlabel START (alamat $1000).

Seterusnya masukkan aturcara sample di antara suruhan ORG dan MOVE.B #9,D0. Anda akanmendapat paparan seperti Rajah 3.8.

Rajah 3.8: Memasukkan aturcara ke dalam EASy68K.

Setelah siap memasukkan aturcara, tekan F9 untuk menghimpun. Kod punca dengan imbuhan X68akan menjana kod objek dengan imbuhan S68 dan fail senarai dengan imbuhan L68, selaras denganRajah 3.1. Jika tiada ralat sintaks, anda akan mendapat kotak dialog seperti Rajah 3.9.

Rajah 3.9: Kotak dialog menunjukkan operasi himpunan berjaya.

Tekan kekunci Enter untuk melancarkan perisian simulator. Anda akan diberi skrin seperti dalamRajah 3.10. Skrin simulator terbahagi kepada empat lapisan utama. Lapisan pertama ialah riben perintahyang mengandungi ikon bagi operasi-operasi yang kerap digunakan. Lapisan kedua ialah kandungandaftar pemproses. Lapisan ketiga ialah paparan fail senarai. Akhir sekali ialah lapisan yang memaparkanmesej dari simulator.

Tekan kekunci F9 untuk melaksanakan aturcara. Dalam contoh ini, output akan dikeluarkan padakonsol. Konsol menggabungkan output teks ASCII dan input papan kekunci.

Langkah-langkah di atas menunjukkan prosedur bagi aturcara yang mempunyai output di konsol.Aturcara anda boleh mengambil input dari konsol. Rujuk skrin bantuan EASy68K untuk mendapatkantips penggunaan rutin-rutin TRAP #15.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 47: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.6. Penggunaan Simulator 43

Rajah 3.10: Skrin utama simulator.

Rajah 3.11: Sebahagian daripada output konsol.

EASy68K juga menawarkan input/output mudah menggunakan beberapa jenis suis dan LED sepertidalam Rajah 3.12. Input paling mudah ialah melalui suis di alamat $E00012. Output paling mudahpula ialah LED di alamat $E00010. Aturcara termudah bagi menggunakan suis dan LED ditunjukkan dibawah.

SUIS EQU $E00012LED EQU $E00010START ORG $1000

ULANG MOVE.B SWITCH,D0 ; Baca dari suisNOP ; Operasi terhadap dataMOVE.B D0,LED ; Tulis ke LEDBRA ULANG ; Ulang tanpa henti

END START

Dalam aturcara ini, suis dibaca ke D0 kemudian nilainya dihantar ke LED tanpa diubah. Anda boleh

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 48: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

44 Bab 3. Bahasa Himpunan

Rajah 3.12: Input/output melalui perkakasan mudah.

Jadual 3.4: Kekunci bagi mengawal larian EASy68K.

Kekunci Fungsi OperasiF9 Run Lari pada kelajuan maksimum

Ctrl + F9 Run to Cursor Lari hingga kursor (lampu merah). Klik sekali di lampu hijaudi kiri suruhan untuk menukarkannya ke merah. Klik sekali lagiuntuk mengembalikannya ke hijau.

F10 Auto Trace Laksanakan suruhan satu persatu dengan perlahan sambil mema-parkan nilai daftar semasa.

F8 Step Over Laksanakan satu suruhan. Jika ada subrutin, laksana subrutinsepenuhnya dan anggapkannya satu suruhan.

F7 Trace Into Laksanakan satu suruhan. Jika ada subrutin, masuk ke subrutindan laksanakan suruhan dalam subrutin satu persatu.

F6 Pause Rehat sebentar. Tekan F6 lagi untuk menyambung.Ctrl + F2 Reset Hentikan aturcara secara paksa.Ctrl + F3 Reload Isikan aturcara objek semula dari cakera.

melakukan apa saja terhadap input ini sebelum output dikeluarkan. Perhatikan bahawa aturcara ini tidakdiakhiri oleh turutan MOVE.B #9,D0 dan TRAP #15. Sebaliknya, suruhan terakhir ialah BRA ULANGkerana aturcara ini berjalan tanpa henti dan tidak akan kembali ke simulator. Untuk menghentikanaturcara secara paksa, tekan kekunci Ctrl + F2.

Selain menjalankan aturcara secara normal, anda boleh melaksanakan suruhan-suruhan satu persatu.Kaedah ini amat berguna untuk memerhatikan perubahan dalam daftar-daftar dan mengesan ralatsemantik. Jadual 3.4 menyenaraikan kekunci yang mengawal perlaksanaan aturcara.

Ada banyak lagi operasi yang boleh dilakukan dengan EASy68K. Gunakan skrin bantuan atau cubasendiri semua pilihan yang ada.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 49: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

3.6. Penggunaan Simulator 45

Latihan

1. Laksanakan dengan tangan kemudian buktikan dengan EASy68K keratan aturcara berikut:

MOVE.L #$13762,D0MOVE.W D0,$400MOVE.B $400,D0MOVE.W %10101010,D0

2. Dapatkan jumlah ingatan yang digunakan oleh setiap perintah penghimpun berikut:

DC.L $ABCDEF00,$FF,0DC.W $20DS.B %1010DC.B %1010DC.B ’SUBJEK MIKROPEMPROSES REKREASI MINDA’,$A,$D

3. Rekod kedua dalam aturcara berikut mengandungi ralat byte semak. Tentukan nilai yang betul.

S0060000612E6FFBS10A80007200227C000090007404FFS9030000FC

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 50: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

46 Bab 3. Bahasa Himpunan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 51: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 4

Mod Alamat

Objektif

• Menunjukkan mod-mod alamat asas

• Menggunakan mod alamat asas untuk suruhan pergerakan data

Pengenalan

Penentuan kendalian yakni data yang diperlukan oleh suruhan boleh dilakukan pelbagai cara. Kendalianboleh terletak dalam daftar dan ingatan. Amnya, terdapat enam mod alamat iaitu daftar langsung,mutlak, daftar tak langsung, terdekat, relatif PC dan tersirat. Enam mod ini boleh dikembangkanlagi menjadi 14 mod kesemuanya. Dalam pengaturcaraan bahasa himpunan, tatasusunan pentingbagi menyusun sekelompok data berkaitan. Beberapa mod alamat disediakan khusus untuk olahantatasusunan.

Mod alamat menentukan bagaimana CPU mendapatkan alamat kendalian sebenar. Alamat sebenaryang terhasil digelar alamat berkesan.

Jadual 4.1 menunjukkan mod alamat dan sintaks yang difahami oleh penghimpun. Merujuk kepadajadual ini, dua mod alamat pertama melibatkan kendalian yang terletak dalam pemproses. Hampirkesemua mod alamat yang selebihnya melibatkan kendalian yang terletak dalam ingatan.

4.1 Mod Daftar Data Langsung

Mod daftar langsung antara mod alamat yang termudah. Dalam mod ini, lokasi kendalian adalahsebahagian daripada suruhan. Alamat berkesan atau kedudukan data sebenar dinyatakan oleh simbolDn atau An iatu ialah salah satu daripada daftar data atau daftar alamat. Mod alamat ini adalah sangatpantas kerana daftar merupakan tempat menyimpan data yang terletak dalam pemproses.

Mod daftar data langsung dinyatakan dengan simbol Dn. Dalam mod ini, saiz data yang dibenarkanialah byte, kata atau kata panjang. Apabila hanya sebahagian daftar digunakan iaitu bagi saiz data byteatau kata, baki daftar tidak terkesan.

Contoh 1:

Jika D0 berisi $FEEDBEEF, apakah kesan suruhan CLR.B D0, CLR.W D0 dan CLR.L D0?

Penyelesaian:

Suruhan CLR.B D0 memadam hanya byte terendah tanpa mmengubah maklumat lain, jadi D0 menjadi$FEEDBE00. Suruhan CLR.W D0 memadam hanya kata rendah tanpa mengubah kata atas, jadi D0

47

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 52: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

48 Bab 4. Mod Alamat

Jadual 4.1: Mod alamat pemproses 68000.

Mod Alamat Sintaks Penjanaan Alamat Berkesan BabDaftar data langsung

Dn ea← Dn 4(Data register direct)Daftar alamat langsung

An ea← An 4,7(Address register direct)Mutlak pendek

XXXX ea← (kata berikut) 4(Absolute short)Mutlak panjang

XXXXXXXX ea← (dua kata berikut) 4(Absolute long)Relatif dengan offset

d16(PC) ea← (PC) + d16 4,6(Relative with offset)Relatif dengan indeks dan ofset

d8(PC,Xn) ea← (PC) + (Xn) + d8 4(Relative with index and offset)Daftar alamat tak langsung

(An) ea← (An) 4,7(Address register indirect)Pascatokok

(An)+ ea← (An), An← An + N 4,7,8(Post-increment)Prasusut

-(An) An← An – N, ea← (An) 4,7,8(Pre-decrement)Daftar alamat tak langsung dengan ofset

d16(An) ea← (An) + d16 4,7(Address register indirect with offset)Daftar alamat tak langsung dengan indeks dan ofset

d8(An,Xn) ea← (An) + (Xn) + d8 4,7(Address register indirect with index and offset)Terdekat

#XXXX data← kata berikut 4(Immediate)Tersirat CCR, SR, ea← CCR, SR, USP, SSP, PC 8,13(Inherent) USP, SSP, PC

menjadi $FEED0000. Suruhan CLR.L D0 memadam keseluruhan daftar jadi D0 menjadi $00000000.

Contoh 2:

Jika D0 berisi $00000001 dan D1 berisi $0000FFFF, apakah kesan suruhan ADD.B D0, D1?

Penyelesaian:

Operasi ADD.B D0,D1 menambah byte terendah D0 kepada D1. Jadi nilai $01 ditambah kepada $FF.Hasilnya ialah $100 tetapi tempat untuk menyimpan hasiltambah ialah byte terendah D1 sahaja jadihanya nilai $00 disimpan. Oleh itu, D1 berubah menjadi $0000FF00.

Suruhan SWAP dan EXG

Selain suruhan CLR, MOVE dan ADD, dua suruhan mudah lain ialah SWAP dan EXG. Kedua-duasuruhan ini menggunakan mod daftar langsung. Suruhan SWAP mempunyai format

SWAP Dn

Suruhan ini menukarganti kata atas daftar data Dn dengan kata rendah daftar yang sama.Suruhan EXG mempunyai format

EXG Rx,Ry

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 53: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4.2. Mod Daftar Alamat Langsung 49

Ia menukarganti kandungan dua daftar. Daftar yang dibenarkan adalah sebarang kombinasi daftar alamatdan daftar data. Kedua-dua suruhan tidak mempunyai penentu saiz.

Contoh 3:

Jika D0 berisi $11223344 dan D1 berisi $0000FFFF, apakah kesan suruhan SWAP D0 dan EXG D0,D1?

Penyelesaian:

Suruhan SWAP D0 menjadikan D0 = $33441122. Suruhan EXG D0,D1 menjadikan D0 bernilai$0000FFFF dan D1 bernilai $11223344.

4.2 Mod Daftar Alamat Langsung

Mod daftar data langsung dinyatakan dengan simbol An. Dalam mod ini, saiz data yang dibenarkan ialahkata atau kata panjang. Imbuhan yang dibenarkan ialah .W dan .L. Dalam penulisan bahasa himpunan,suruhan yang menggunakan daftar alamat dikenali dengan imbuhan huruf A. Contohnya, MOVE kedaftar alamat boleh ditulis sebagai MOVE sahaja atau MOVEA. Beberapa suruhan lain bagi olahandaftar alamat termasuk ADDA, SUBA, LEA dan PEA.

Apabila mengisi daftar alamat dalam mod ini, keseluruhan daftar alamat akan terkesan. Jika data 16bit ingin diisikan, ia dikembangkan ke 32 bit dahulu.

Contoh 1:

Jika A0 berisi $FF8002000 dan D0 berisi $00100100, apakah kesan suruhan MOVEA.L D0,A0 danMOVE.W D0,A0?

Penyelesaian:

Suruhan MOVEA.L D0,A0 menyalin keseluruhan D0 ke A0 menjadikan A0 berisi $001000100.Suruhan MOVEA.W D0,A0 mengambil 16 bit terendah dalam A0 iaitu $0100, mengembangkannyake 32 bit dan menyalin nilai ini ke A0 menjadikan A0 berisi $000000100.

Contoh 2:

Jika A0 berisi $FFFF0000, apakah kesan suruhan MOVEA.W #$2000,D0? Apa pula kesan MOVEA.W#$C000,D0?

Penyelesaian:

Suruhan MOVEA.W #$2000,D0 cuba mengisikan nilai $2000 bersaiz 16 bit ke dalam daftar alamat.Nilai $2000 dipanjangkan dahulu menjadi $00002000 sebelum disimpan di A0. Oleh A0 diubah kepada$00002000. Bagi suruhan MOVEA.W #$C000,D0, nilai $C000 dipanjangkan menjadi $FFFFC000dahulu. Oleh A0 berubah menjadi $FFFFC0000.

4.3 Alamat dan Daftar Alamat

Pemproses 68000 mempunyai daftar alamat 32 bit dan pembilang aturcara 32 bit. Oleh itu, alamatyang digunakan untuk memilih suruhan dan kendalian dalam ingatan adalah 32 bit, membolehkannyamencapai sehingga 232 byte. Bagaimanapun, untuk mengecilkan pakej cip pemproses, talian A24 hinggaA31 tidak dikeluarkan dari dalam cip. Disebabkan nilai di talian A24 hingga A31 tidak memberi kesan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 54: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

50 Bab 4. Mod Alamat

kepada alamat yang dikeluarkan dari cip, pemproses 68000 boleh mengakses ingatan sebesar 224 byteatau 16 megabyte sahaja.

Kesan daripada tidak menyambungkan 8 talian alamat ke pin pemproses ialah nilai-nilai ini tidakmemberik kesan terhadap operasi sistem. Misalnya, alamat $12345678 dan $00345678 sama sahajakerana lokasi fizikal yang dirujuk adalah sama. Oleh itu, kita biasanya hanya menggunakan enam digitperenambelasan untuk merujuk peta ingatan. Bagaimanapun, apabila 68000 menyimpan dan mengolahalamat, ia menggunakan 32 bit.

Rajah 4.1: Daftar alamat dan talian alamat.

Walaupun daripada segi logikalnya 68000 mempunyai 24 talian alamat, daripada segi fizikalnyaia hanya mempunyai 23 talian A1 hingga A23. Talian A0 dikeluarkan melalui pin strob data UDS*(upper data strobe) dan LDS* (lower data strobe). Talian A1 hingga A23 memilih kata di alamat genap,dan strob data memilih byte yang dicapai. Isyarat UDS* memilih byte atas (di alamat genap) danLDS* memilih byte bawah (di alamat ganjil). Jika kedua-dua strob diaktifkan serentak, keseluruhankata dicapai.

4.4 Mod Mutlak Panjang

Mod mutlak digunakan untuk mencapai data dalam ingatan. Terdapat dua variasi iaitu mod mutlakpanjang dan mod mutlak pendek. Dalam mod ini, alamat berkesan didapati dengan mencantumkan duakata lanjutan yang menuruti kod operasi dalam suruhan. Alamat ini boleh digunakan untuk mencapaisebarang alamat.

Suruhan

CLR.W $10000

menggunakan mod mutlak panjang kerana nilai $10000 tidak mungkin disimpan dalam 16 bit jadi alamatini disimpan dalam alamat panjang 32 bit yang terletak dalam suruhan.

Contoh:

Apakah kesan suruhan CLR.W $10000 jika alamat $10000 hingga $10003 mengandungi nilai $42, $51,$55 dan $13? Apakah format mesin untuk suruhan ini?

Penyelesaian:

Suruhan CLR.W $10000 memadam satu kata (nilai 16 bit) bermula dari alamat $10000. Oleh itu isialamat $10000 dan $10001 dipadam, manakala isi alamat $10002 dan $10003 tidak berubah.

Format mesin untuk CLR.W $10000 ditunjukkan dalam Rajah 4.3.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 55: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4.5. Mod Mutlak Pendek 51

Rajah 4.2: Pengiraan alamat berkesan pengalamatan mutlak panjang.

Rajah 4.3: Format mesin untuk suruhan CLR.W $10000.

4.5 Mod Mutlak Pendek

Mod mutlak pendek adalah variasi mod alamat mutlak yang mana alamat kendalian terkandung dalamsatu kata lanjutan selepas opkod untuk membentuk satu suruhan. Alamat ini diubah menjadi nilai 32 bitdengan memanjangkan bit tanda (bit 15) alamat tersebut. Oleh kerana bas alamat 68000 lebarnya hanya24 bit, lapan bit teratas dibuang. Rajah 4.4 menunjukkan cara pengiraan alamat berkesan.

Rajah 4.4: Pengiraan alamat berkesan pengalamatan mutlak pendek.

Mod ini dinamai mod mutlak pendek kerana alamat yang dinyatakan dalam suruhan hanya 16 bitberbanding mod mutlak panjang dengan 32 bit. Julat alamat ingatan yang boleh dicapai ialah $000000hingga $007FFF (32k paling awal) dan $FF8000 hingga $FFFFFF (32k paling akhir).

Rajah 4.5 menunjukkan kesan penggunaan mod mutlak pendek. Jika alamat pendek ialah antara0 hingga $7FFFF, ruang 32K pertama dalam ingatan boleh digunakan. Alamat pendek $8000 hingga$FFFF dipanjangkan ke 24 bit menghasilkan nilai antara $FF8000 hingga $FFFFFF iaitu 32K terakhirdalam ruang ingatan. Biasanya alamat permulaan dikhaskan untuk kegunaan sistem dan alamat-alamatterakhir untuk antaramuka I/O. Penggunaan 32K pertama dan terakhir ini mempercepatkan capaian data.

Pemilihan mod mutlak pendek atau panjang dibuat secara automatik oleh penghimpun. Misalnya,suruhan

CLR.W $1000

menggunakan mod mutlak pendek kerana nilai $1000 boleh dimuatkan dalam 16 bit.Selain itu, suruhan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 56: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

52 Bab 4. Mod Alamat

Rajah 4.5: Mencapai ingatan dengan alamat mutlak pendek.

CLR.W $FFF000

juga ditukar menjadi mod mutlak pendek kerana alamat $FFF000 boleh disimpan dengan lebih mampatdalam suruhan sebagai $F000 sekiranya mod mutlak pendek digunakan. Sebaliknya, suruhan

CLR.W $10000

memerlukan mod mutlak panjang kerana nilai $10000 tidak mungkin dimuatkan dalam 16 bit.

Contoh 1:

Jika alamat $1000 hingga $1003 mengandungi $42, $51, $55 dan $13, berikan kesan suruhan CLR.B$1000. Apakah format suruhan mesinnya?

Penyelesaian:

Suruhan CLR.B $1000 memadam byte dialamat $1000. Jadi nilai dalam alamat $1000 dipadam, danalamat $1001, $1002 dan $1003 tidak terkesan. Format suruhan mesin ditunjukkan dalam Rajah 4.6.

Rajah 4.6: Format suruhan mesin untuk CLR.W $1000.

Contoh 2:

Berikan nilai akhir yang digunakan oleh sistem jika mod alamat pendek menyatakan alamat $7FFF,$8000, $1234 dan $ABCD.

Penyelesaian:

Jadual berikut meringkaskan perubahan yang berlaku.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 57: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4.6. Mod Terdekat 53

Hex asal Perduaan asal Perduaan akhir Hex akhir7FFF 0111 1111 1111 1111 → 0000 0000 0111 1111 1111 1111 007FFF8000 1000 0000 0000 0000 → 1111 1111 1000 0000 0000 0000 FF80001234 0001 0010 0011 0100 → 0000 0000 0001 0010 0011 0100 001234ABCD 1010 1011 1100 1101 → 1111 1111 1010 1011 1100 1101 FFABCD

4.6 Mod Terdekat

Mod terdekat membolehkan nilai malar dinyatakan dalam suruhan. Pemalar ini adalah sebahagiandaripada suruhan. Nilai 8 dan 16 bit memerlukan satu kata lanjutan, manakala nilai 32 bit memerlukandua kata lanjutan. Penghimpun mengenali mod ini dengan aksara # seperti dalam

MOVE.B #$100,D0

yang mengisikan nilai 20 perpuluhan ke dalam daftar D0. Ini berbeza dengan suruhan

MOVE.B $100,D0

yang mengambil data dari alamat $100 di ingatan.Apabila suruhan dipungut ke dalam daftar suruhan pemproses, data telahpun dibaca ke dalam

pemproses. Kendalian dikatakan terletak terdekat dengan kod operasi. Oleh sebab data telah sedia ada,ia boleh digunakan terus tanpa dengan pantas. Mod ini tidak dibenarkan sebagai kendalian destinasikerana kendalian destinasi mestilah boleh menyimpan maklumat.

Contoh:

Jika D0 berisi $FFFFFFFF, apakah kesan suruhan MOVE.W #50,D0?

Penyelesaian:

Suruhan ini mengisikan kata rendah D0 dengan nilai 50 perpuluhan atau 32 perenambelasan. Oleh ituD0 menjadi $FFFF0032.

Suruhan MOVEQ

Suruhan MOVEQ ialah suruhan satu kata bagi mengisikan data ke dalam daftar data. Formatsimboliknya ialah:

MOVEQ #data8,Dn

yang mana data8 ialah pemalar 8 bit. Nilai 8 bit ini dipanjangkan tandanya kepada 32 bit dandipindahkan ke Dn. Suruhan ini amat cekap untuk mengisi daftar data dengan nilai malar dalam julatperpuluhan -128 ke +127. Ia dilaksanakan dalam 4 kitar sahaja. Suruhan MOVE asas memerlukan lebihbanyak masa kecuali jika kedua-dua kendalian punca dan destinasi adalah daftar.

Suruhan berikut

MOVEQ #0,D0

sama kesannya dengan suruhan CLR.L D0 iaitu memadam keseluruhan D0.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 58: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

54 Bab 4. Mod Alamat

4.7 Mod Tersirat

Beberapa suruhan 68000 tidak memerlukan sebarang kendalian dan ada pula suruhan yang merujukdaftar tanpa menyebut daftar yang digunakan. Contohnya, suruhan

RTS

menyebabkan kawalan dikembalikan dari subrutin ke aturcara pemanggil menggunakan daftar SP.Suruhan ini mempunyai mod alamat tersirat. Disebabkan tidak banyak suruhan dalam mod ini, operasisetiap suruhan amat berbeza dan perlu difahami sebelum digunakan.

4.8 Mod Daftar Alamat Tak Langsung

Fungsi sebenar daftar alamat ialah sebagai penuding ke suatu alamat ingatan. Dalam mod daftar alamattak langsung, isi daftar alamat menuding ke kendalian. Daftar alamat yang dipilih menyimpan alamatberkesan bagi data. Alamat berkesan didapati dengan rumus

ea← (An)

Contohnya, suruhan

MOVE.W (A0),D1

mengisikan kata bawah D1 dengan kata yang alamatnya terletak di dalam A0.

4.9 Mod Pascatokok

Semasa mencapai data berturutan, daftar alamat ditokok selalunya selepas data dicapai bagi menudingke data berikutnya. Operasi ini boleh dibuat secara manual menggunakan suruhan ADDA #m,An yangmana m ialah nilai yang ditokok kepada daftar alamat An. Nilai m bergantung kepada saiz data iaitu 1,2, atau 4 untuk data byte, kata atau kata panjang.

Mod pascatokok menjimatkan satu suruhan dengan menokok daftar alamat secara automatik selepasdigunakan. Dalam mod ini, kendalian dicapai kemudian daftar alamat ditokok. Nilai yang ditokok ialahsebanyak 1 (untuk data byte), 2 (untuk data kata) atau 4 (untuk data kata panjang).

Contohnya, suruhan berikut menambah 2 kepada A0 selepas data dipindah dari ingatan ke daftarD1:

MOVE.W (A0)+,D1

Suruhan di atas sama dengan turutan dua suruhan berikut:

MOVE.W (A0),D1ADDQ.L #2,A0

Rajah 4.7: Pengalamatan Daftar Alamat Tak Langsung.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 59: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4.10. Mod Prasusut 55

Rajah 4.8: Perlaksanaan suruhan MOVE.W (A0),D1.

Contoh:

Jika D0 berisi $FFFFFFFF, A0 berisi $00001100 dan lokasi $1100 hingga $1103 berisi $20, $30, $40dan $50, apakah nilai D0 dan A0 selepas suruhan MOVE.W (A0)+,D0?

Penyelesaian:

Mula-mula satu kata bermula dari alamat $1100 disalin ke D0. Oleh itu D0 bernilai $FFFF2030.Kemudian A0 ditokok 2 (kerana saiz data yang dipindahkan ialah satu kata). Akhirnya, A0 bernilai$00001102.

4.10 Mod Prasusut

Mod prasusut hampir sama dengan mod pascatokok. Bersama-sama dengan mod pascatokok, modprasusut penting dalam olahan satu struktur data lain iaitu tindanan.

Mod ini mengurangkan daftar alamat sebelum digunakan. Nilai yang disusut bergantung saiz data:1 untuk byte, 2 untuk kata, 4 untuk kata panjang.

Sebagai contoh, suruhan berikut

MOVE.W -(A0),D1

sama dengan turutan dua suruhan berikut:

SUBQ.L #2,A0MOVE.W (A0),D1

Contoh:

Jika D0 berisi $FFFFFFFF, A0 berisi $00001104 dan lokasi $1100 hingga $1103 berisi $20, $30, $40dan $50, apakah nilai D0 dan A0 selepas suruhan MOVE.L (A0),D0?

Rajah 4.9: Mod pascatokok.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 60: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

56 Bab 4. Mod Alamat

Rajah 4.10: Mod prasusut.

Penyelesaian:

Mula-mula A0 dikurangkan 4 kerana saiz data yang terlibat ialah kata panjang. Jadi A0 bernilai$00001100. Kemudian satu kata panjang bermula dari alamat yang terletak dalam A0 iaitu $1100 disalinke D0. Jadi D0 bernilai $20304050.

4.11 Mod Daftar Alamat Tak Langsung dengan Ofset

Mod alamat tak langsung dengan indeks berguna untuk mengendalikan jadual data atau matriks duadimensi dengan membolehkan ofset dan indeks ditambah kepada daftar alamat.

Mod daftar alamat tak langsung dengan ofset menambah nilai 16 bit bertanda kepada isi daftaralamat. Hasil tambah digunakan bagi mencapai data di dalam ingatan. Oleh itu alamat berkesan didapatidengan rumus

ea← (An)+d16

Semasa mencapai tatasusunan atau jadual, daftar alamat mengandungi alamat permulaan jadual, danofset menentukan kedudukan relatif unsur tersebut dari atas.

Untuk jadual mengandungi data bersaiz byte, ofset ialah nombor unsur (0, 1, 2, dsb). Untuk jadualmengandungi kata atau kata panjang, ofset ialah integer yang mewakili nombor unsur darab 2 atau 4.

Oleh kerana ofset ialah integer 16 bit bertanda, mod ini boleh mencapai -32768 ke belakang hingga+32767 alamat ke depan. Jika data bersaiz kata atau kata panjang, ini bersamaan 16382 kata atau 8191kata panjang ke depan, sehingga 16384 kata atau 8192 kata panjang ke belakang.

Rajah 4.11 menunjukkan kaedah pengiraan alamat berkesan. Nilai ofset dipanjangkan ke 32 bitsebelum ditambahkan kepada An.

Rajah 4.11: Mod daftar alamat tak langsung dengan ofset.

Sebagai contoh, jika daftar alamat A0 mengandungi alamat permulaan jadual yang berisi nilai-nilai16 bit, suruhan

MOVE.W 6(A0),D0

mengisikan kata dengan indeks 3 ke dalam D0. Perhatikan bahawa nilai A0 tidak berubah.Mod alamat ini boleh juga digunakan dengan ofset negatif. Dalam kes ini, data yang dicapai terletak

sebelum alamat yang ditunjuk oleh daftar alamat. Dalam suruhan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 61: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4.12. Mod Daftar Alamat Tak Langsung dengan Indeks 57

(a) Offset positif. (b) Offset negatif.

Rajah 4.12: Perbezaan ofset positif dan negatif.

MOVE.W -2(A0),D0

alamat berkesan ialah kandungan A0 tolak 2. (Lihat Rajah 4-16).

Contoh:

Jika D0 berisi $FFFFFFFF, A0 berisi $00001100 dan kandungan ingatan ialah seperti yang tertera,apakah isi D0 dan A0 selepas suruhan MOVE.W 6(A0),D0 dan MOVE.W 2(A0),D0?

Penyelesaian:

Suruhan MOVE.W 6(A0),D0 mencapai alamat $1106. Jadi D0 berubah menjadi $FFFF5555. SuruhanMOVE.W 2(A0),D0 menbaca alamat $10FE. Jadi D0 berubah menjadi $FFFF1111. Dalam kedua-duakes, daftar A0 tidak berubah.

4.12 Mod Daftar Alamat Tak Langsung dengan Indeks

Mod daftar alamat tak langsung dengan indeks mendapat alamat berkesan dengan menambah integerbertanda 8 bit dan isi daftar indeks (daftar data atau daftar alamat) kepada daftar alamat. Alamat berkesandidapati dengan rumus

ea← (An)+(Xn.s)+d8 (s = W,L)

yang mana An ialah sebarang daftar alamat, Xn ialah sebarang daftar data atau daftar alamat, dan d8ialah ofset bertanda 8 bit. Daftar Xn dikenali sebagai daftar indeks. Kandungan daftar indeks bolehdigunakan sepenuhnya atau separuh sahaja dengan menambah .L atau .W selepas nama daftar indeks.Nilai indeks dan ofset dipanjangkan ke 32 bit sebelum ditambah kepada An.

Rajah 4.13: Mod daftar alamat tak langsung dengan indeks.

Disebabkan ia menambahkan dua nilai kepada daftar alamat, mod alamat ini berguna untuk men-golah tatasusunan dua dimensi (matriks). Daftar alamat mengandungi alamat permulaan tatasusunan,

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 62: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

58 Bab 4. Mod Alamat

manakala nilai ofset dan indeks menentukan kedudukan baris dan lajur dalam matriks. Sebagai contoh,suruhan

MOVE.W $4(A0,D4.W),D1

menambahkan kandungan A0, kandungan kata bawah D4 dan nilai malar 4 untuk mendapat alamatkendalian.

Mod alamat ini boleh digunakan bagi kes apabila nilai daftar alamat perlu ditambahkan kepada suatuofset dinamik. Dalam kes ini, ofset menjadi sifar. Suruhan berikut dianggap sah.

MOVE.W (A0,D4.W),D1

Bentuk suruhan di atas kerap digunakan apabila mengadakan jadual penukaran1.

Contoh:

Tunjukkan bagaiama nilai 4 bit terendah dalam D0 boleh ditukar kepada nilai ASCII setara.

Penyelesaian:

Cebisan aturcara berikut menunjukkan bagaimana operasi ini boleh dilakukan.

MOVEA.L #ASCII,A0MOVE.B (A0,D0.W),D1....

ASCII DC.B ’0123456789ABCDEF’

Mula-mula nilai dalam daftar D0 haruslah dipastikan berada dalam julat $0 hingga $F sahaja.Kemudian daftar A0 diset supaya menunjuk ke senarai yang mengandungi nilai ASCII 0 hingga 9diikuti terus oleh A hingga F. Menambah nilai A0 kepada daftar D0 mendapatkan alamat satu aksaraASCII dalam jadual ini. Misalnya, nilai 0000 dalam 4 bit terendah D0 menghasilkan nilai ASCII 0 atau$30. Nilai 1010 pula menghasilkan ASCII A atau $41.

4.13 Mod PC Relatif dengan Ofset

Mod ini menggunakan ofset 16 bit yang ditambah kepada PC untuk mendapat alamat berkesan. Alamatberkesan didapati dengan rumus

ea← (PC)+d16

Sebagai contoh, suruhan berikut:

MOVE.W $1020(PC),D5

yang dilaksanakan dengan keadaan awal berikut:

Ingatan Daftar001020 AB PC 00001000001021 CD D5 12345678

akan menghasilkan jawapan:

Ingatan Daftar001020 AB PC 00001004001021 CD D5 1234ABCD

1lookup table

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 63: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

4.14. Mod PC Relatif dengan Indeks dan Ofset 59

4.14 Mod PC Relatif dengan Indeks dan Ofset

Mod ini menggunakan ofset 8 bit yang ditambah kepada PC dan satu daftar indeks untuk mendapatalamat berkesan. Alamat berkesan didapati dengan rumus

ea← (PC)+(X .s)+d8 (s = W,L)

Sebagai contoh, suruhan berikut:

MOVE.W $1020(PC,D0.W),D5

yang dilaksanakan dengan keadaan awal berikut:

Ingatan Daftar001026 FE PC 00001000001027 DC D0 ABCD0006

D5 12345678

akan menghasilkan jawapan:

Ingatan Daftar001026 FE PC 00001000001027 DC D0 ABCD0006

D5 1234FEDC

Latihan

1. Nyatakan mod alamat yang digunakan dalam kendalian destinasi bagi suruhan-suruhan berikut:

(a) MOVE.L #2,D4

(b) MOVE.L #3,A3

(c) MOVE.W #5,$1000

(d) MOVE.W #5,$10000

(e) MOVE.B D1,(A0)

(f) MOVE.B $20,(A1)+

(g) MOVE.B D1,-(A0)

(h) MOVE.W D7,2(A0,D3)

2. Anggap D0 berisi $00012345, D1 berisi $00000002 dan A0 berisi $00000200. Alamat $2000hingga $2003 berisi $20, $40, $60 dan $80. Nyatakan isi keseluruhan D0 selepas melaksanakansetiap suruhan berikut:

(a) MOVE.L #20,D0

(b) MOVE.W #$20,D0

(c) MOVE.B #’5’,D0

(d) CLR.W D0

(e) MOVE.B D1,D0

(f) MOVE.W (A0),D0

(g) MOVE.W 2(A0),D0

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 64: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

60 Bab 4. Mod Alamat

(h) MOVE.W 2(A0,D1),D0

3. Apakah nilai D3 dan D4 selepas turutan berikut?

ORG $800MOVEQ #0,D3MOVEQ #-1,D4MOVE.W D3,D4SWAP D4END

4. Tulis turutan suruhan yang memadam kata atas D0 menggunakan suruhan SWAP dan CLR sahaja.

5. Tulis turutan suruhan yang menyalin kata atas D0 ke kata atas D1 tanpa mengubah kata rendahkedua-dua daftar. Gunakan sebarang daftar lain dengan bebas.

6. Tulis turutan suruhan yang menukarganti kata di alamat 1100dengankatadi1102.

7. Anggap A0 berisi $011200. Nyatakan isi A0 selepas melaksanakan suruhan-suruhan berikut:

MOVE.L #$1200,A0MOVE.W #$9000,A0MOVE.W (A0),D0MOVE.W (A0)+,D0MOVE.L (A0),D0MOVE.W (A0)+,-(A0)

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 65: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 5

Suruhan Olahan Data

Objektif

• Memahami operasi suruhan olahan data

• Memahami kesan suruhan kepada CCR

Pengenalan

Pemproses 68000 mempunyai suruhan-suruhan yang melakukan perubahan terhadap data. Kesemuasuruhan olahan data melibatkan penggunaan ALU. Suruhan-suruhan dikategorikan sebagai aritmetik,logik, anjak dan putar, olahan bit‘’ dan BCD. Dalam hampir setiap keadaan, salah satu kendalianmestilah terletak dalam daftar data dan mengubah bendera-bendera CCR.

5.1 Suruhan ADD dan SUB

Suruhan aritmetik paling asas tentunya suruhan ADD. Suruhan ini menambah kendalian punca kepadakendalian destinasi dan menyimpan hasil tambah di dalam destinasi. RTL bagi suruhan ini ialah destinasi+ punca –¿ destinasi. Apabila menggunakan suruhan ADD biasa, salah satu kendalian mestilah daftardata. Bagi kendalian punca dalam mod terdekat, variasi ADDI digunakan yang membenarkan sebarangmod alamat destinasi. Formatnya ialah

ADD <ea>,DnADD Dn,<ea>ADDI #<data>,<ea>

Suruhan SUB menolak kendalian punca daripada kendalian destinasi. RTL bagi operasi ini ialahdestinasi – punca→ destinasi. Mod alamat yang dibenarkan serupa seperti suruhan ADD.

SUB <ea>,DnSUB Dn,<ea>SUBI #<data>,<ea>

Salah satu kendalian mesti terletak dalam daftar. Contohnya, uruhan berikut menyebabkan. perutusanralat dari penghimpun.

ADD.W $1000,$2000 ; salah ni...

Untuk memproses data dalam ingatan, ia perlu terlebih dahulu dipindahkan ke daftar data sebelumoperasi tambah atau tolak dilakukan.

61

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 66: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

62 Bab 5. Suruhan Olahan Data

Contoh:

Tambah isi lokasi $502 dengan isi lokasi $504. Simpan jawapan di dalam $500.

Penyelesaian:

Mustahil untuk menambah ingatan dengan ingatan dengan satu suruhan. Turutan berikut mengatasimasalah ini dengan menyalin data yang perlu diolah ke dalam daftar D1.

MOVE.W $502,D1ADD.W $504,D1MOVE.W D1,$500

Dalam bahasa perhimpunan, nama simbolik lebih sesuai berbanding alamat mutlak. Katakan lokasi$500 diberi label A, lokasi $502 dilabel B dan $504 dilabel C, masalah ini berupa A=B+C. Aturcaradibawah menunjukkan aturcara yang lengkap.

1 ;ATURCARA A=B+C000400 2 ORG $400000400 3239 00000502 3 TAMBAH MOVE.W B,D1000406 D279 00000504 4 ADD.W C,D100040C 33C1 00000500 5 MOVE.W D1,A

6 ;SEKSYEN DATA000500 7 ORG $500000500 8 A DS.W 1000502 9 B DS.W 1000504 10 C DS.W 1000506 11 END

5.2 Kesan ADD dan SUB Terhadap Bendera

Daftar CCR mengandungi lima bit yang nilainya melambangkan hasil operasi aritmetik. Setiap bit inidikenali sebagai bendera. Bendera berguna untuk mengawal aliran aturcara dengan kombinasi suruhanBcc yang akan diliputi dalam Bab 6.

Berikut disenaraikan semula bendera-bendera CCR dan cara bagaimana setiap bendera terkesan olehoperasi tambah dan tolak.

Bit 0, Carry (C) Bendera ini diset ke 1 jika operasi tambah menghasilkan bawa atau operasi tolakmenghasilkan pinjam. Berguna untuk menguji kesahan operasi terhadap integer tak bertanda.

Bit 1, Overflow (V) Bendera ini berguna hanya untuk operasi terhadap integer bertanda. Ia diset ke 1jika penambahan dua nombor sama tanda (atau penolakan dua nombor berlainan tanda) mengubahtanda destinasi.

Bit 2, Zero (Z) Bendera ini diset ke 1 jika hasil operasi bersamaan sifar, dipadam ke 0 sebaliknya.

Bit 3, Negative (N) Bendera ini diset ke 1 jika operasi menghasilkan negatif, dipadam ke 0 sebaliknya.Ia adalah bit teratas dalam kendalian.

Bit 4, Extend (X) Berfungsi sebagai bawa untuk operasi berbilang kata. Nilainya sama dengan bit Cuntuk operasi tambah dan tolak.

Penentuan nilai untuk bendera N dan Z paling mudah. Bagi bendera C dan V, penentuannya memerlukanbeberapa pertimbangan yang diliputi di bawah.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 67: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.2. Kesan ADD dan SUB Terhadap Bendera 63

Rajah 5.1: Daftar kod syarat.

Penghasilan Bawa

Julat untuk integer tak bertanda, julat nilai yang boleh disimpan ialah 0 hingga 2n-1. Berikut ialah julatnilai untuk tiga saiz data yang dikendalikan oleh 68000:

Jenis Nilai minimum Nilai maksimumByte 0 28–1 = 255Kata 0 216–1 = 65535

Kata panjang 0 232–1 = 4294967295

Bagi menentukan nilai bendera C, kedua-dua kendalian dianggap integer tak bertanda. Katakanpenambahan dilakukan dengan suruhan ADD.B D0,D1. Jika D0 mengandungi 128 dan D1 berisi 15,hasil tambah adalah 143:

128 10000000+ 15 00001111

143 (0)00001111

Hasil tambah, 143, masih di dalam julat yang boleh disimpan dalam 8 bit. Oleh itu bendera C bernilaisifar.

Jika D0 mengandungi 128 dan D1 berisi 143, hasil tambah adalah 271 jika penambahan dilakukandengan tangan. Bagaimanapun, ini melebihi nilai maksimum:

128 10000000+ 143 10001111

15 (1)00001111

Nilai 271 memerlukan 9 bit sedangkan ruang yang disediakan hanya 8 bit. Oleh itu, jawapan yangdidapati ialah 15 dan bendera C diset kepada 1. Penghasilan Limpahan

Julat untuk integer tak bertanda, julat nilai yang boleh disimpan ialah -2n-1 hingga 2n-1-1. Berikutialah julat nilai bertanda untuk tiga saiz data yang dikendalikan oleh 68000:

Jenis Nilai minimum Nilai maksimumByte –27 = –128 +27–1 = +127Kata –215 = –32768 +215–1 = +32767

Kata panjang –231 = –2147483648 +231–1 = +2147483647

Bagi menentukan nilai bendera V, kedua-dua kendalian dianggap integer bertanda. Katakanpenambahan dilakukan dengan suruhan ADD.B D0,D1. Jika D0 dan D1 kedua-duanya mengandungi+30, hasil tambah adalah +60:

+30 00011110+ +30 00011110

+60 00111100

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 68: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

64 Bab 5. Suruhan Olahan Data

Di sini, hasil tambah masih di dalam julat yang sah sebagai integer bertanda 8 bit. Oleh itu bendera Vbernilai sifar.

Jika D0 dan D1 kedua-duanya mengandungi -3, hasil tambah adalah -6:

–3 11111101+ –3 11111101

–6 11111010

Hasil tambah iaitu -6 masih di dalam julat yang sah sebagai integer bertanda 8 bit. Oleh itu bendera Vbernilai sifar. Perhatikan bahawa nilai bendera C dibuang begitu sahaja.

Jika D0 mengandungi +127 dan D1 mengandungi +2, hasil tambah yang dijangka ialah +129:

+127 01111111+ +2 00000010

–127 10000001

Bagaimanapun, operasi ini menghasilkan jawapan yang tidak munasabah iaitu -127. Ini kerana nilai+129 melebihi nilai maksimum integer bertanda 8 bit. Oleh itu bendera V diset ke 1. Satu kaedahmenyemak jawapan ialah dengan melihat tanda kendalian input dan output. Di sini nilai positif danpositif menghasilkan negatif, jadi limpahan telahpun berlaku.

Jika D0 mengandungi -127 dan D1 mengandungi -2, hasil tambah yang dijangka ialah -129:

–127 10000001+ +2 11111110

+127 01111111

Bagaimanapun, operasi ini juga menghasilkan jawapan yang tidak munasabah iaitu +127. Ini kerananilai -129 kurang daripada nilai minimum integer bertanda 8 bit. Oleh itu bendera V diset ke 1. Operasiini juga mengakibatkan perubahan tanda kendalian input dan output. Penambahan nilai negatif dengannegatif sepatutnya memberi jawapan negatif tetapi limpahan yang berlaku menyebabkan jawapannyapositif.

Berikut ditunjukkan kesan suruhan ADD s,d terhadap bendera V. Sebagai kesimpulan, V sentiasasifar untuk penambahan nilai berbeza tanda, dan mungkin bernilai 1 untuk penambahan sama tanda.Semasa penambahan sama tanda, V bernilai 1 jika tanda destinasi berubah.

Punca Destinasi Destinasi Limpahans d s + d→ d’ V

Pos PosPos 0Neg 1

Pos Neg Tak kisah 0Neg Pos Tak kisah 0

Neg NegNeg 0Pos 1

Kesimpulan bagi suruhan tambah:

• Limpahan tidak mungkin berlaku jika kedua-dua kendalian tidak sama tanda.

• Limpahan berlaku jika kedua-dua kendalian sama tanda DAN destinasi berubah tanda.

Di bawah pula ialah kesan suruhan SUB s,d terhadap bendera V. Bendera ini bernilai 1 jika penolakandua nilai berlainan tanda mengubah tanda destinasi. Jadual 5.1 menyenaraikan kesan semua suruhanterhadap CCR.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 69: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.3. Suruhan Darab 65

Punca Destinasi Destinasi Limpahans d d – s→ d’ V

Pos Pos Tak kisah 0

Pos NegNeg 0Pos 1

Neg PosPos 0Neg 1

Neg Neg Tak kisah 0

Kesimpulan bagi suruhan tolak:

• Limpahan tidak mungkin berlaku jika kedua-dua kendalian sama tanda.

• Limpahan berlaku jika kedua-dua kendalian tidak sama tanda DAN destinasi berubah tanda.

Suruhan ADDQ, SUBQ dan NEG

Suruhan ADDQ (add quick) dan SUBQ (subtract quick) adalah kes khas mod alamat terdekat yangmembolehkan nilai tak bertanda antara 1 hingga 8 ditambah atau ditolak daripada daftar atau ingatan.Kedua-dua suruhan ini menggunakan mod terdekat sahaja untuk kendalian punca. Bagaimanapun,kendalian destinasi boleh menggunakan sebarang mod. Sama seperti suruhan MOVEQ, kelebihansuruhan pantas ini ialah operasi lebih pantas dan suruhan lebih pendek.

Suruhan NEG menafikan nilai di dalam kendalian. RTL bagi suruhan ini ialah 0 – X→ X. Sebarangsaiz kendalian dibenarkan.

5.3 Suruhan Darab

Pemproses 68000 boleh mendarab dua nilai 16 bit bagi mendapatkan hasil darab 32 bit. Terdapatmenyediakan suruhan-suruhan yang berbeza untuk pendaraban integer bertanda dan tidak bertanda. Iniberbeza dengan suruhan tambah atau tolak yang menggunakan suruhan yang sama bagi nombor bertandaatau tidak bertanda. Sintaks untuk suruhan darab ialah

MULU <ea>,DnMULS <ea>,Dn

Suruhan MULU (multiply unsigned) adalah untuk kendalian tak bertanda manakala MULS (multiplysigned) adalah untuk kendalian bertanda., Dalam kedua-dua suruhan, kendalian punca ditetapkan kepada16 bit dan boleh menggunakan sebarang mod alamat. Kendalian destinasi ialah kata rendah sebarangdaftar data. Hasil darab bersaiz 32 bit yang memenuhi keseluruhan daftar destinasi. Ini bermaknasebarang nilai dalam kata tinggi daftar tersebut diabaikan semasa operasi darab dan dihapuskan olehjawapan yang terhasil.

Hasil operasi darab tidak mungkin meyebabkan bawa atau limpahan. Bagi kendalian-kendalian tidakbertanda melalui suruhan MULU, nilai terbesar yang terhasil ialah $FFFF × $FFFF = 65535 × 65535atau 4294836225. Nilai ini masih di dalam julat yang boleh ditampung oleh daftar 32 bit.

Bagi kendalian bertanda dengan suruhan MULS, hasilnya adalah positif atau negatif bergantungkepada tanda kedua-dua kendalian. Julat nilai bertanda 16 bit ialah -215 hingga +215 - 1 atau -32768 hingga +32767. Jika dua nilai paling negatif didarab, hasilnya ialah -215 × -215 = 230 atau1073741824. Nilai negatif paling besar ialah -215 × (+215 - 1) atau 1073709056. Kedua-dua nilai inijuga masih mampu ditampung dalam 32 bit bermakna sebarang hasil pendaraban bertanda tidak mungkinmenyebabkan limpahan. Oleh itu, selepas sebarang operasi darab, bendera C dan V sentiada bernilaisifar.

Hanya terdapat satu kombinasi saiz kendalian. Pengaturcara perlu memastikan kedua-dua kendalianbersaiz 16 bit sebelum memulakan pendaraban.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 70: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

66 Bab 5. Suruhan Olahan Data

Jadual 5.1: Kesan suruhan terhadap CCR

Suruhan X N Z V C Suruhan X N Z V CABCD * ? * ? * MOVE SR * * * * *ADD * * * * * MOVE CCR * * * * *ADDA – – – – – MOVE USP – – – – –ADDI * * * * * MOVEA – – – – –ADDQ * * * * * MOVEM – – – – –ADDX * * * * * MOVEP – – – – –AND – * * 0 0 MOVEQ – * – 0 0ANDI – * * 0 0 MULS – * * 0 0ANDI CCR * * * * * MULU – * * 0 0ANDI SR * * * * * NBCD * ? * ? *ASL * * * * * NEG * * * * *ASR * * * * * NEGX * * * * *Bcc – – – – – NOP – – – – –BCHG – – * – – NOT – * * 0 0BCLR – – * – – OR – * * 0 0BRA – – – – – ORI – * * 0 0BSET – – * – – ORI CCR * * * * *BSR – – – – – ORI SR * * * * *BTST – – * – – PEA – – – – –CHK – * ? ? ? RESET – – – – –CLR – 0 1 0 0 ROL – * * 0 *CMP – * * * * ROL – * * 0 *CMPA – * * * * ROXL * * * 0 *CMPI – * * * * ROXR * * * 0 *CMPM – * * * * RTD – – – – –DBcc – – – – – RTE * * * * *DIVS – * * * 0 RTR * * * * *DIVU – * * * 0 RTS – – – – –EOR – * * 0 0 SBCD * ? * ? *EORI – * * 0 0 Scc – – – – –EORI CCR * * * * * STOP * * * * *EORI SR * * * * * SUB * * * * *EXG – – – – – SUBA – – – – –EXT – * * 0 0 SUBI * * * * *JMP – – – – – SUBQ * * * * *JSR – – – – – SUBX * * * * *LEA – – – – – SWAP – * * 0 0LINK – – – – – TAS – * * 0 0LSL * * * 0 * TRAP – – – – –LSR * * * 0 * TRAPV – – – – –MOVE – * * 0 0 TST – * * 0 0MOVE SR – – – – – UNLK – – – – –* Berubah menurut hasil operasi– Tidak berubah0 Dipadam1 Diset? Tidak tertakrif

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 71: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.4. Suruhan Bahagi 67

Contoh 1:

Jika D0 berisi $10100020 dan D1 berisi $FFFF0020, apakah kesan suruhan MULU D1,D0? Apakahkesan MULS D1,D0?

MOVE.W #256,D3MULU #2,D3

Penyelesaian:

Suruhan MULU D1,D0 mendarab kata rendah D0 ($20) dengan kata rendah D1 ($20) menghasilkannilai $400. Keseluruhan D0 digunakan untuk menyimpan jawapan. Hasilnya, D0 bernilai $00000400.Kesan MULS D1,D0 adalah sama dengan D0 juga mendapat jawapan $00000400.

Contoh 2:

Jika D0 berisi $FFFFFFFF, apakah kesan suruhan MULU #$FFFF,D0? Apakah kesan MULS D1,D0?

Penyelesaian:

Suruhan MULU #$FFFF,D0 menghasilkan menganggap kedua-dua kendalian tidak bertanda. Jadi$FFFF bernilai 65535. Suruhan ini melakukan operasi 65535 × 65535 yang menghasilkan D0bersamaan $FFFE0001 bersamaan 4294836225. Bagi suruhan MULS #$FFFF,D0, kedua-dua kendaliandianggap bertanda. Suruhan ini pula melakukan operasi -1× -1 menghasilkan D0 bersamaan $00000001atau 1.

5.4 Suruhan Bahagi

Suruhan yang melakukan operasi bahagi dengan 68000 ialah DIVU dan DIVS. Format suruhan ini ialah

DIVU punca,DnDIVS punca,Dn

Suruhan DIVU (divide unsigned) adalah untuk kendalian tak bertanda. Suruhan DIVS (divide signed)adalah untuk kendalian bertanda. Suruhan- suruhan ini melakukan operasi

destinasi(31 : 0) / punca(15 : 0) → destinasi(15 : 0)destinasi(31 : 0) % punca(15 : 0) → destinasi(31 : 16)

yang mana simbol / adalah operasi bahagi dan simbol % adalah operasi modulo atau baki. Semasapembahagian, nilai 32 dalam daftar destinasi dibahagi oleh nilai 16 bit dalam kendalian punca. Hasilbahagi diletakkan dalam kata rendah daftar destinasi. Baki diletakkan dalam kata tinggi daftar destinasi.

Dua kes khas boleh muncul semasa melakukan operasi bahagi. Kes khas pertama ialah hasil bahagiyang melimpah atau tidak mampu disimpan dalam 16 bit. Limpahan akan mengakibatkan bendera Vdiset tetapi kendalian-kendalian tidak diusik. pembahagian dengan sifar.

Kes khas kedua ialah pembahagian dengan sifar. Kes ini mengakibatkan perangkap yang menye-babkan pemproses cuba melaksanakan pengendali kekecualian. Dalam sistem mudah tanpa pengendalikekecualian, sistem akan terkandas dan hanya boleh digunakan semula dengan mereset keseluruhansistem. Untuk sistem mudah, pengaturcara perlu memastikan kendalian punca tidak bernilai sifarsebelum memulakan pembahagian. Dalam sistem lebih canggih yang menyediakan pengendalikekecualian, sistem boleh pulih dari perangkap sambil mematikan aturcara yang bermasalah atau

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 72: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

68 Bab 5. Suruhan Olahan Data

memberi mesej yang mesra kepada pengguna. Topik kekecualian dan perangkap diliputi lebih lanjutdalam Bab 13.

Sama seperti operasi darab, hanya terdapat satu kombinasi saiz kendalian bagi operasi bahagi.Pengaturcara perlu memastikan kendalian destinasi dan punca masing-masing bersaiz 32 dan 16 bitsebelum memulakan pendaraban.

Contoh 1:

Jika D0 berisi $FFFF0003 dan D3 berisi $00000014, apakah kesan DIVU D0,D3?

Penyelesaian:

Operasi yang dilakukan ialah $00000014 ÷ $0003 = 20 ÷ 3. Hasil bahagi ialah 6 dengan baki 2. Olehitu, D3 akan berisi $00020006 yang mana kata tinggi menyimpan baki dan kata rendah menyimpan hasilbahagi.

Contoh 2:

Jika D4 berisi $00040000, apakah kesan DIVU #2,D4?

Penyelesaian:

Nilai $40000 dibahagi 2 menghasilkan $20000. Hasil bahagi ini memerlukan 18 bit sedangkan ruangyang disediakan untuk hasil bahagi hanya 16 bit. Suruhan ditamatkan dengan kendalian tidak berubahdan bendera V diset ke 1.

5.5 Mengolah Kendalian Berlainan Saiz

Dalam operasi tambah dan tolak, saiz dan jenis dua kendalian yang diolah mestilah sama. Kendalianyang kecil mestilah dipanjangkan kepada saiz kendalian yang lebih besar. Dalam operasi darab danbahagi, saiz kendalian tidak boleh dipilih. Di sini, kita juga perlu mengubah saiz data untuk memenuhikehendak suruhan.

Suruhan EXT (extend) memanjangkan kendalian bertanda dalam daftar data. Sintaksnya ialah

EXT.W DnEXT.L Dn

Penentu saiz dalam suruhan melambangkan saiz hasil operasi. Suruhan EXT.W (Rajah 5.2(a))memanjangkan data dari byte ke kata. Ia menyalin bit 7 ke bit 8 hingga 15. Bit 16 hingga 31 tidakterkesan. Suruhan EXT.L (Rajah 5.2(b)) memanjangkan data dari kata ke kata panjang. Ia menyalin bit15 ke bit 16 hingga 31. Data 8 bit tidak boleh dipanjangkan ke 32 bit dalam satu langkah.

(a) Suruhan EXT.W.

(b) Suruhan EXT.L.

Rajah 5.2: Suruhan EXT.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 73: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.6. Suruhan Logik 69

Contoh 1:

Tambahkan byte bertanda dalam D0 kepada kata bertanda dalam D1.

Penyelesaian:

Apabila nilai 8 bit ditambah kepada nilai 16 bit, nilai 8 bit perlu dipanjangkan menjadi 16 bit sebelumpenambahan dibuat. Turutan berikut melakukan operasi yang dikehendaki.

EXT.W D0ADD.W D0,D1

Contoh 2:

Tambahkan byte bertanda dalam alamat $2000 kepada kata panjang dalam D7.

Penyelesaian:

Untuk menambah byte dan kata panjang, byte mesti dipanjangkan menjadi 32 bit. Ini perlu dilakukandalam dua langkah dan data berkenaan mesti dibawa ke dalam daftar data dahulu.

MOVE.B $2000,D0EXT.W D0EXT.L D0ADD.L D0,D7

Dalam penambahan nilai-nilai tak bertanda berbeza saiz, kaedah yang digunakan adalah berbeza.Untuk memanjangkan nilai, mula-mula kosongkan satu daftar kemudian masukkan data yang ingindipanjangkan.

Contoh 3:

Darab byte terendah dalam D0 dengan kata dalam D1. Anggap kedua-dua nilai tak bertanda.

Penyelesaian:

Pilih sebarang daftar data lain yang tidak digunakan dan gunakannya untuk menyimpan nilai yang telahdipanjangkan. Turutan berikut melakukan operasi yang dikehendaki.

CLR.W D2MOVE.B D0,D2MULU D2,D1

5.6 Suruhan Logik

Suruhan-suruhan logik menganggap kendaliannya sebagai sekelompok bit yang diolah secara berasin-gan. Setiap bit mewakili satu pembolehubah logikal. Sebagai contoh, daftar kod syarat mengandungilima bit berlainan dan setiap bit boleh diset atau diuji berasingan. Setiap pembolehubah logikal hanyaboleh mempunyai dua keadaan bergantung aplikasi iaitu BENAR atau PALSU, ON atau OFF, 0 atau 1,dan sebagainya.

Suruhan-suruhan logik adalah AND, OR, EOR dan NOT. Kesan setiap suruhan operasi berkenaandalam aljabar Boolean (Jadual 5.2). Oleh itu, suruhan-suruhan ini juga dikenali sebagai suruhanBoolean.

Berikut adalah sintaks untuk suruhan-suruhan logikal.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 74: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

70 Bab 5. Suruhan Olahan Data

Jadual 5.2: Jadual kebenaran operasi logikal

A B NOT A A AND B A OR B A EOR B0 0 1 0 0 00 1 1 0 1 11 0 0 0 1 11 1 0 1 1 0

AND <ea>,DnAND Dn,<ea>ANDI #data,<ea>OR <ea>,DnOR Dn,<ea>ORI #data,<ea>EOR <ea>,DnEORI #data,<ea>NOT <ea>

Suruhan-suruhan ini boleh digunakan untuk kendalian dalam daftar data atau ingatan tetapi tidakdalam daftar alamat. Selepas setiap operasi, bit C dan V sentiasa dipadam. Bit N dan Z diset menuruthasil.

Mod-mod alamat yang dibenarkan tidak seragam bagi kesemua suruhan. Suruhan AND dan ORboleh menggunakan tiga mod alamat tetapi suruhan EOR hanya mempunyai dua mod alamat. SuruhanANDI, ORI dan EORI menggunakan nilai terdekat sebagai kendalian punca.

Suruhan AND

Suruhan AND memadam bit tertentu dalam destinasi. Pemilihan bit dilakukan dalam kendalian punca.Nilai 1 dalam sesuatu kedudukan dalam punca mengekalkan nilai bit tersebut dalam destinasi. Nilai 0memadam bit berkenaan. Kendalian punca dikenali sebagai topeng kerana ia menutup atau melindungibit-bit yang tidak dikehendaki dalam destinasi. Ini bersamaan dengan kaitan aljabar Boolean berikut:

A∧0 = 0

A∧1 = A

Contoh:

Berikan suruhan yang memadam kesemua bit kecuali bit 0-3 dalam byte terendah D0. Apa berlaku jikaD0 mengandungi $DA?

Penyelesaian:

Suruhan yang sesuai ialah ANDI.B #%00001111,D0. Radiks perduaan lebih sesuai digunakan untukmemudahkan kesan suruhan difahami. Jika D0 mengandungi $DA, suruhan ini melakukan operasi 110110102 DAN 0000 11112 menjadikan nilai D0 baru 0000 10102 atau $0A

Suruhan OR

Suruhan OR mengeset bit tertentu dalam destinasi. Pemilihan bit dilakukan dalam kendalian punca.Nilai 1 dalam sesuatu kedudukan dalam punca mengeset nilai bit tersebut dalam destinasi. Nilai 0mengekalkan nilai asal. Ini bersamaan dengan kaitan aljabar Boolean berikut:

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 75: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.6. Suruhan Logik 71

A∨0 = A

A∨1 = 1

Contoh:

Berikan suruhan yang mengeset bit 5-7 dalam D0. Apa berlaku jika D0 mengandungi $A22D?

Penyelesaian:

Suruhan yang sesuai ialah ORI.W #%11100000,D0. Suruhan ORI.B ORI.B #%11100000,D0 atauORI.L #%11100000,D0 boleh juga digunakan dan kesannya sama. Jika D0.W mengandungi $A22D,suruhan ini melakukan operasi 1010 0010 0010 11012 OR 0000 0000 1110 00002 menjadikan nilai D0baru 1010 0010 1110 11012 atau $A2ED.

Suruhan EOR

Suruhan EOR menyongsangkan bit tertentu dalam destinasi. Pemilihan bit dilakukan dalam kendalianpunca. Nilai 1 dalam sesuatu kedudukan dalam punca menyongsangkan nilai bit tersebut dalamdestinasi. Nilai 0 mengekalkan nilai asal. Operasi suruhan ini bersamaan dengan kaitan aljabar Booleanberikut:

A⊕0 = A

A⊕1 = A

Contoh:

Berikan suruhan yang menyongsangkan nibel terendah dalam D0. Apa berlaku jika byte terendah D0mengandungi $2D?

Penyelesaian:

Suruhan yang sesuai ialah EORI.B #%00001111,D0. Jika D0.B mengandungi $2D, suruhan inimelakukan operasi 0010 11012 EOR 0000 11112 menjadikan nilai D0 baru 0010 00102 atau $22.

Suruhan NOT

Suruhan NOT menyongsangkan setiap bit. Ia juga boleh dianggap melakukan operasi pelengkap satujika keseluruhan kendalian dianggap suatu nombor.

Contoh:

Berikan suruhan yang menyongsangkan kata rendah dalam D0. Apakah hasilnya jika D0 mengandungi$12345678?

Penyelesaian:

Suruhan NOT.W D0 menyongsangkan kata rendah D0. Suruhan ini akan menyongsangkan nilai $5678= 0101 0110 0111 1000 menjadi $A987 = 1010 1001 1000 0111. Oleh itu D0 akan menjadi $1234A987.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 76: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

72 Bab 5. Suruhan Olahan Data

5.7 Mengubah Bendera CCR

Sesetengah operasi aritmetik dan logik memerlukan bendera-bendera dalam byte rendah SR yakni daftarCCR berada dalam keadaan tertentu. Suruhan-suruhan logik boleh digunakan bagi mengubah daftarCCR. Selain itu, suruhan MOVE juga boleh digunakan untuk menetapkan secara langsung nilai-nilaibendera yang dikehendaki. Berikut adalah suruhan- suruhan tersebut:

MOVE SR,<ea>MOVE <ea>,CCRANDI #data,CCREORI #data,CCRORI #data,CCR

Untuk menyalin kandungan CCR, gunakan suruhan MOVE SR,<ea> kemudian gunakan hanyabyte terendah. Bendera-bendera dalam byte atas SR yakni byte sistem adalah untuk kegunaan sistemdan jarang benar perlu diubah. Rujuk bab 13 untuk keterangan lanjut penggunaan byte sistem.

Contoh:

Beri suruhan yang menjadikan bit X bernilai 1.

Penyelesaian:

Suruhan ORI #$10,CCR menjadikan X bernilai 1.

Contoh:

Beri suruhan yang memadam bit Z.

Penyelesaian:

Suruhan AND #%11111011,CCR menjadikan X bernilai 1.

5.8 Suruhan Anjak dan Putar

Suruhan anjak dan putar menggerakkan bit-bit dalam kendalian ke kiri atau kanan. Terdapat lapansuruhan suruhan anjak dan putar dalam tiga kelompok:

• anjak aritmetik

• anjak logik

• putar

Mod alamat yang dibenarkan untuk kelapan-lapan suruhan adalah sama. Berikut disenaraikansintaks suruhan-suruhan ini yang mana op melambangkan salah satu suruhan anjak atau putar.

op Dx,Dyop #<data>,Dnop <ea>

Suruhan dengan format op Dx,Dy dinamai anjakan dinamik daftar. Saiz kendalian ialah B, W atauL.Daftar Dy ialah daftar yang dianjak. Jumlah anjakan ialah 0 hingga 63 yang ditetapkan dalam 6 bit

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 77: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.8. Suruhan Anjak dan Putar 73

terendah Dy (kiraan modulo 64). Bagaimanapun, nilai maksimum yang praktikal digunakan ialah 32sahaja.

Suruhan dengan format op #<data>,Dn dinamai anjakan statik daftar. Saiz kendalian ialah B, Watau L. Jumlah anjakan terhadap daftar Dn ditentukan oleh <kiraan> yang boleh mempunyai nilai 1hingga 8.

Rajah 5.3: Suruhan anjak dan putar.

Suruhan dengan format op #<data> ialah anjakan ingatan yang mana sebarang mod alamatdibenarkan kecuali relatif PC. Jumlah anjakan ialah 1 dan saiz kendalian ialah 16 bit sahaja.

Kesan suruhan anjakan dan putar kepada bendera berbeza-beza menurut operasi yang terbabit. BitN dan Z diset seperti suruhan-suruhan lain iaitu N menurut nilai bit tanda dan Z diset jika hasil operasisifar. Bit V diset jika bit tanda berubah nilai pada sebarang masa semasa operasi anjakan. Bit C dan Vdiset menurut bit terakhir dianjak keluar. Bagaimanapun, bit C dipadam bagi anjakan sifar tetapi bit Vtidak terkesan bagi anjakan sifar.

Suruhan Anjak Aritmetik

Suruhan ASL (arithmetic shift left) menganjak maklumat secara aritmetik ke kiri. Kesannya samadengan mendarab kendalian dengan dua bagi setiap anjakan. Bit yang dianjak keluar dari kiri disalin kebendera C dan X, sementara 0 dianjak masuk dari kanan.

Suruhan ASR (arithmetic shift right) menganjak maklumat secara aritmetik ke kanan. Kesannyasama dengan membahagi kendalian dengan dua bagi setiap anjakan. Nilai kendalian dianggap integerbertanda. Bit yang dianjak keluar dari kanan disalin ke bendera C dan X, sementara bit tanda dianjakmasuk semula ke kedudukannya yang asal.

Contoh:

Jika D1.W mengandungi 1638410, apakah kesan ASR #1,D1?

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 78: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

74 Bab 5. Suruhan Olahan Data

Penyelesaian:

Nilai 1638410 sama dengan 0100 0000 0000 00002. Jika dianjak ke kanan sekali, nilai ini menjadi 00100000 0000 00002 atau 819210.

Contoh:

Jika D3.W mengandungi -2010, apakah kesan ASR #2,D3?

Penyelesaian:

Nilai -2010 sama dengan 1111 1111 1110 11002. Jika dianjak ke kanan dua kali secara aritmetik, bittanda dimasukkan semula dari kiri menyebabkan D3 menjadi 1111 1111 1111 10112 atau -510.

Contoh:

Apakah kesan turutan berikut?

ASL #1,D0ASL #1,D0ASL #1,D0

Penyelesaian:

Menganjak D0 ke kiri sekali bererti mendarab dengan dua. Jika D0 dianjak sebanyak tiga kali, inibersamaan dengan menganjaknya 2 × 2 × 2 = 8 kali. Suruhan-suruhan di atas boleh juga ditulis semulasebagai ASL #3,D0.

Anjak aritmetik ke kiri mendarab nilai bertanda dengan 2. Anjak aritmetik ke kanan membahagi den-gan 2. Anjak logik mendarab atau membahagi nilai-nilai tidak bertanda. Suruhan putar menyebabkanbit-bit yang dianjak keluar dimasukkan semula di hujung bertentangan

Suruhan Anjak Logikal

Suruhan LSL (logical shift left) menganjak maklumat secara aritmetik ke kiri. Kesannya sama denganmendarab kendalian dengan dua bagi setiap anjakan. Bit yang dianjak keluar dari kiri disalin ke benderaC dan X, sementara 0 dianjak masuk dari kanan. Sebenarnya suruhan ini langsung tidak berbeza dengansuruhan ASL.

Suruhan LSR (logical shift right) menganjak maklumat secara aritmetik ke kanan. Kesannya samadengan membahagi kendalian dengan dua bagi setiap anjakan. Nilai kendalian dianggap integer tidakbertanda. Bit yang dianjak keluar dari kanan disalin ke bendera C dan X, sementara 0 dianjak masukdari kiri.

Contoh:

Jika D3.W mengandungi 3276810, apakah kesan LSR #2,D3?

Penyelesaian:

Nilai 3276810 sama dengan 1000 0000 00002. Jika dianjak ke kanan dua kali secara logikal, 0dimasukkan semula dari kiri menyebabkan D3 menjadi 0010 0000 0000 00002 atau 819210.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 79: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.9. Suruhan Olahan Bit 75

Suruhan Putar

Suruhan putar menyerupai suruhan anjak kecuali bit yang dianjak keluar dimasukkan semula untukmembentuk satu lingkaran. Untuk ROL dan ROR, bit yang dianjak keluar disuap balik.

Suruhan ROL (rotate left) memutar kendalian ke kiri. Suruhan ROR (rotate right) memutarkendalian ke kanan.

Contoh:

Berikan suruhan yang menukarganti byte-byte dalam kata rendah D0.

Penyelesaian:

Suruhan yang boleh digunakan ialah ROR.W #8,D0 atau ROL.W #8,D0. Arah putaran tidak mengubahhasilnya kerana setelah 8 anjakan, byte tinggi akan tetap bertukar tempat dengan byte rendah.

Suruhan Putar Menerusi X

Suruhan putar menerusi X membolehkan data baru disisipkan di celah- celah kendalian. Ini bermaknabendera X menjadi sebahagian daripada lingkaran. Ia membolehkan kita memutar atau menganjak suatudaftar ”maya” yang lebih besar daripada 32 bit.

Suruhan ROXL (rotate left through X) memutarkan kendalian ke kiri menerusi X. Suruhan ROXR(rotate right through X) memutarkan kendalian ke kanan menerusi X.

Contoh:

Jika daftar D0 dan D1 dianggap suatu daftar maya 64 bit dengan D0 mewakili bit 63-32 dan D1 mewakili31-0, apakah turutan suruhan yang menganjak daftar maya ini sebanyak 2 bit ke kiri?

Penyelesaian:

Masalah ini diselesaikan dengan turutan

ASL.L #1,D1ROXL.L #1,D0ASL.L #1,D1ROXL.L #1,D0

Perhatikan bahawa kita boleh memindahkan hanya satu bit dari D1 ke D0 dalam setiap langkah.

5.9 Suruhan Olahan Bit

Suruhan AND, OR, atau EOR boleh mengeset, memadam atau menyongsangkan sekelompok bit dalamkendalian tetapi pemproses 68000 menyediakan suruhan alternatif yang hanya beroperasi terhadap satubit setiap kali.

Terdapa empat suruhan olahan bit. Suruhan ini diringkaskan di dalam jadual di bawah Setiap suruhanmerakamkan nilai bit dalam bendera Z. Bendera Z diberi nilai songsangan bit yang diolah. Bagi destinasidaftar, saiz data ialah kata panjang dan nombor bit adalah modulo 32. Bagi destinasi ingatan, saiz dataialah byte dan nombor bit adalah modulo 8.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 80: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

76 Bab 5. Suruhan Olahan Data

Mnemonik Takrifan OperasiBTST Bit test Ubah Z sahaja. Bit tidak diubah.BCLR Bit clear Padam bit menjadi logik 0.BSET Bit set Set bit menjadi logik 1.BCHG Bit change Songsangkan bit.

Sintaks suruhan olahan bit adalah seperti berikut:

BTST Dn,<ea>BTST #data,<ea>BCLR Dn,<ea>BCLR #data,<ea>BSET Dn,<ea>BSET #data,<ea>BCHG Dn,<ea>BCHG #data,<ea>

Contoh:

Alamat $FF8000 mengandungi $AA. Apakah kesan suruhan BTST.B #3,$FF8000?

Penyelesaian:

Nilai perduaan di dalam $FF8000 ialah 101010102. Suruhan ini hanya menguji bit 3 dan mengubahbendera Z ke 0 kerana bit 3 adalah 1.

Contoh:

D3 dan D5 masing-masing mengandungi $74762600 dan $0000000D. Apakah kesan suruhan BCLR.LD5,D3?

Penyelesaian:

Daftar D5 menyatakan bit ke-13 dalam D3 ialah bit yang perlu diuji dan dipadam. Kata tinggi D3 tidakterkesan kerana perubahan berlaku dalam kata rendah. Kata rendah dalam D3 ialah 0010 0110 000000002. Suruhan ini mengubah D3 ke 0000 0110 0000 00002. Oleh itu, D3 diubah menjadi $74760600.Bendera Z diset ke 0 kerana bit 13 adalah 1 sebelum suruhan dilaksanakan.

5.10 Suruhan BCD

Data jenis BCD (binary coded decimal) ada masanya lebih sesuai digunakan untuk menyimpanmaklumat berbanding perduaan biasa. Ini kerana kebanyakan peranti input/output menggunakan samaada kod ASCII atau kod-kod lain yang lebih mudah ditukar ke bentuk BCD.

Unit terkecil untuk olahan BCD ialah satu byte. Setiap byte BCD mengandungi dua digit BCD.Tiga suruhan khusus untuk olahan BCD ialah ABCD, NBCD dan SBCD. Jadual di bawah mentakrifansuruhan-suruhan BCD.

Mnemonik Takrifan OperasiABCD Add BCD punca + destinasi + X→ destinasiNBCD Negate BCD 0 - punca - X→ destinasiSBCD Subtract BCD destinasi - punca - X→ destinasi

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 81: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.10. Suruhan BCD 77

Sintaks untuk suruhan-suruhan ini ialah:

ABCD Dx,DyABCD –(Ay),–(Ax)NBCD <ea>SBCD Dx,DySBCD –(Ay),–(Ax)

Suruhan ABCD dan SBCD mempunyai mod alamat yang membolehkan data terletak sepenuhnyadalam ingatan. Ini nyata berbeza dengan majoriti suruhan olahan data yang memerlukan salah satukendalian terletak dalam daftar data.

Setiap suruhan melibatkan bit X. Kesan setiap suruhan kepada bendera X, N dan V tidak tertakrif.Ini bermakna nilai ketiga-tiga bendera ini tidak mempunyai sebarang makna. Bendera C diset jikaABCD menjana bawa, atau SBCD menjana pinjam dan dipadam sebaliknya. Bagi bendera Z, ia dipadamjika hasil bukan sifar tetapi tidak diubah jika hasil sifar. Ini membolehkan nilai sifar dikesan dalampenambahan berbilang byte. Bendera Z dalam kes ini melambangkan status keseluruhan angka, bukanhanya byte terakhir. Dengan itu, bendera Z perlu diset sendiri oleh pengaturcara sebelum melakukansebarang operasi.

Operasi BCD hanya dilakukan dalam byte terendah daftar data. Jika nilai berbilang byte perlu diolah,operasi yang dikehendaki lebih mudah dilakukan terus dalam ingatan.

Suruhan ABCD dan NBCD digunakan untuk menambah dan menolak nilai-nilai BCD. SuruhanNBCD digunakan bagi mendapatkan pelengkap 9 dan 10 sesuatu nilai BCD.

Contoh:

Tambah nombor BCD dlm D0 kepada D1.

Penyelesaian:

Sebelum menambah, setkan dahulu bendera Z dalam CCR.

MOVE #4,CCR ; X=0 dan Z=1ABCD D0,D1

Contoh:

Tambah dua nombor BCD 8 digit (4 byte).

Penyelesaian:

Disebabkan nombor-nombor BCD melebihi 1 byte, nilai-nilai diletakkan dalam ingatan dan ditudingmenggunakan sebarang daftar alamat. Katakan A0 menuding ke kendalian punca dan A1 menuding kekendalian destinasi, kod yang terhasil adalah seperti berikut.

MOVE #4,CCR ; X=0 dan Z=1ABCD -(A0),-(A1)ABCD -(A0),-(A1)ABCD -(A0),-(A1)ABCD -(A0),-(A1)

Contoh:

Dapatkan pelengkap 10 untuk isi D0. Katakan D0 berisi 23.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 82: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

78 Bab 5. Suruhan Olahan Data

Rajah 5.4: Menggunakan suruhan ABCD untuk menambah dua nombor BCD 8 digit.

Penyelesaian:

Untuk mendapat pelengkap 10, bendera X perlu dipadam sebelum suruhan NBCD dilaksanakan.

MOVE #0,CCRNBCD D0

Bagi D0 bersamaan 23, suruhan NBCD melakukan operasi 0 – 23 – 0 menghasilkan jawapan 77 pinjam1. Nilai pinjam diabaikan.

Contoh:

Dapatkan pelengkap 9 untuk isi D0. Katakan D0 berisi 23.

Penyelesaian:

Untuk mendapat pelengkap 9, bendera X perlu diset sebelum suruhan NBCD dilaksanakan.

MOVE #$10,CCRNBCD D0

Bagi D0 bersamaan 23, suruhan NBCD melakukan operasi 0 – 23 – 1 menghasilkan jawapan 76 pinjam1. Nilai pinjam diabaikan.

Latihan

1. Jika D0=$12348877, apakah nilainya selepas melaksanakan suruhan EXT.W D0?

2. Jika D0=$00007788, apakah nilainya selepas melaksanakan suruhan NEG.W D0?

3. Selepas suruhan ADD atau SUB yang melibatkan kendalian tak bertanda, bendera manakah yangmenentukan sama ada jawapannya betul?

4. Diberi nilai awal untuk D0 dan D1 dalam perenambelasan seperti berikut. Cari isi D1 dan benderaselepas suruhan ADD.W D0,D1.

(a) D0 = 1234, D1 = 5678

(b) D0 = FFFF, D1 = 0001

(c) D0 = 7000, D1 = 7000

(d) D0 = 9000, D1 = 7000

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 83: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

5.10. Suruhan BCD 79

5. Diberi nilai awal untuk D0 dan D1 dalam perenambelasan seperti berikut. Cari isi D1 dan benderaselepas suruhan SUB.W D0,D1.

(a) D0 = 5678, D1 = 1234

(b) D0 = 0001, D1 = FFFF

(c) D0 = 7000, D1 = 9000

(d) D0 = 9000, D1 = 7000

6. Daftar D2 berisi $FFFF0002. Apakah isinya selepas melaksanakan suruhan MULU #$10,D2?

7. Daftar D7 berisi $FFFFFFF0. Apakah isinya selepas melaksanakan suruhan DIVS #5,D7?

8. Tulis turutan suruhan bagi menukar nilai BCD dalam byte terendah D0 ke bentuk perduaan.Contohnya D0.B = $37 ditukar menjadi $25. Anggap D0 mengandungi nilai BCD yang sah.

9. Tulis turutan suruhan bagi menukar nilai perduaan dalam byte terendah D0 ke bentuk BCD.Anggap 0 ≤ D0.B ≤ 99.

10. Tulis turutan suruhan bagi menukar nilai BCD dalam nibel terendah D0 ke bentuk ASCII. Anggap0 ≤ D0.B ≤ 9. Contohnya D0.B = $04 ditukar menjadi ’4’ atau $34.

11. Pembolehubah ALFA, SIGMA dan BETA masing-masing adalah nilai bertanda 32, 16 dan 8 bit.Tulis keratan aturcara yang melakukan pengiraan berikut:

α = δ2−3β+63

12. Pembolehubah OMEGA, PI dan LAMBDA kesemuanya adalah nilai bertanda 32 bit. Tulis keratanaturcara yang melakukan pengiraan berikut tanpa menggunakan suruhan darab atau bahagi.Anggap tiada limpahan berlaku.

Ω =Π

8+4Λ−2

13. Tulis turutan suruhan bagi menukar nilai Fahrenheit ke Celcius.

14. Tulis turutan suruhan bagi menukar nilai Celcius ke Fahrenheit.

15. Tulis turutan suruhan bagi menukarganti byte-byte dalam D0 menurut kaedah yang ditunjukkandi bawah:

16. Dua nilai BCD, U dan V, yang terletak di dua nibel paling bawah D0. U terletak dalam bit 0-3manakala V terletak dalam bit 4-7. Tulis turutan suruhan bagi mendarab U dengan V.

17. Tiga nilai 10 bit, R, G dan B, masing-masing terletak dalam terletak dalam bit 29-20, 19-10 dan9-0 dalam D0. Dengan mengabaikan bit 31-30, tulis turutan suruhan bagi mendapatkan nilai Lmelalui rumus

L = 0.3R+0.6G+0.1B

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 84: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

80 Bab 5. Suruhan Olahan Data

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 85: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 6

Kawalan Aturcara

Objektif

• Suruhan lompat dan cabang

• Membanding dan menguji data

• Melaksanakan suruhan secara bersyarat

• Mengulang turutan suruhan

Pengenalan

Keupayaan komputer terletak kepada kebolehannya memilih satu daripada beberapa pilihan operasiberdasarkan maklumat semasa. Dalam aturcara yang kita telah kaji setakat ini, suruhan-suruhandilaksanakan secara berturutan. Untuk melaksanakan suruhan-suruhan secara tidak berturutan, operasipemproses melakukan operasi cabang dan lompat.

Terdapat dua kaedah mengubah aliran aturcara: cabang tanpa syarat dan cabang bersyarat. Dalamcabang tanpa syarat, operasi cabang sentiasa dilaksanakan. Dalam cabang bersyarat, syarat tertentumesti dipenuhi sebelum cabang diteruskan. Jika sebaliknya, perlaksanaan diteruskan dengan suruhanyang menuruti suruhan cabang.

6.1 Suruhan Lompat

Suruhan JMP (jump) menyebabkan perlaksanaan aturcara disambung di sasaran cabang. Suruhan JMPboleh menggunakan mod-mod alamat berikut:

JMP <label>JMP (An)JMP d16(An)JMP d8(An,Xi)JMP d16(PC)JMP d8(PC,Xi)

RTL untuk suruhan JMP ialah

ea→ PC

Suruhan JMP beroperasi dengan menggantikan PC dengan suatu nilai baru seperti yang dinyatakan olehmod alamat. Rajah 6.1 menunjukkan format mesin suruhan JMP. Kebolehan menggunakan pelbagaimod alamat bermakna suruhan JMP boleh mencapai keseluruhan ruang ingatan. Satu contoh suruhanJMP ialah

81

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 86: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

82 Bab 6. Kawalan Aturcara

Rajah 6.1: Format mesin suruhan JMP.

JMP $400000

Dalam kes ini, perlaksanaan aturcara disambung di alamat $400000. Suruhan JMP berguna apabilaalamat sasaran tidak berubah contohnya jika alamat tersebut terletak di dalam ROM. Lazimnya formatJMP <label> paling kerap digunakan, yang mana label boleh mewakili alamat mutlak panjang ataumutlak pendek.

6.2 Suruhan Cabang Tanpa Syarat

Suruhan BRA (branch always – cabang sentiasa) mempunyai fungsi yang sama dengan JMP iaitumemindahkan kawalan ke sasaran cabang. Format suruhan BRA ialah

BRA <label>

RTL untuk suruhan ini ialah

PC +o f set→ PC

yang mana <ofset> ialah nilai yang ditambah kepada PC untuk mendapat nilai PC baru. Format mesinsuruhan ditunjukkan dalam Rajah 6.2.

Walaupun suruhan BRA kelihatan serupa dengan JMP, suruhan BRA hanya boleh menggunakanmod alamat relatif manakala suruhan JMP berupaya menggunakan pelbagai jenis mod alamt. Inimenjadikan suruhan BRA terhad ke alamat yang tidak lebih daripada -32766 hingga +32768 alamatberbanding alamat suruhan.

Ofset yang digunakan oleh BRA terdapat dalam bentuk integer 8 bit (pendek) atau integer 16 bit(panjang). Bagi ofset 8 bit, julat cabang ialah -126 hingga +129 byte berbanding lokasi suruhan BRAkerana nilai PC semasa ialah lokasi suruhan tambah 2 pada waktu suruhan dilaksanakan. Bagi ofset 16bit, julat cabang ialah -32766 hingga +32768 byte. Jika jarak ke sasaran melebihi nilai ini, suruhan JMPperlu digunakan.

Pengaturcara jarang menentukan sendiri ofset dalam suruhan cabang. Biasanya, suatu label ditulisuntuk mengenalpasti sasaran cabang. Contohnya, suruhan

BRA START

menyebabkan kawalan aturcara dipindahkan ke suruhan berlabel START. Penghimpun akan mengiranilai ofset sebenar dan mengekodnya ke dalam suruhan. Penghimpun juga memilih saiz ofset secaraautomatik, sama ada 8 bit atau 16 bit. Bagaimanapun, kita boleh menulis BRA.S jika kita ingin memaksapenghimpun memilih ofset 8 bit. Suruhan di atas boleh ditulis semula sebagai

Rajah 6.2: Format mesin untuk suruhan cabang tanpa syarat.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 87: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.2. Suruhan Cabang Tanpa Syarat 83

BRA.S START

yang mengarahkan penghimpun menggunakan ofset 8 bit jika munasabah.Aturcara yang telah dihimpun di bawah menunjukkan penghimpun mengira ofset.

001000 1 ORG $1000001000 6002 2 MULA BRA.S LAST001002 60FE 3 BRA *001004 60FA 4 LAST BRA MULA001006 5 END

Rumus am untuk mendapat ofset ialah:

Ofset = Sasaran – PC semasa= Sasaran – (Alamat suruhan + 2)

Nilai +2 perlu ditambah setiap kali kerana apabila pemproses sedang melaksanakan suruhan BRA, nilaiPC sedang menunjuk ke 2 alamat ke hadapan.

Dalam baris 2, suruhan BRA.S LAST melakukan operasi cabang ke hadapan. Suruhan terletak dialamat $1000 manakala sasarannya ialah $1004. Oleh itu nilai ofset ialah $02. Ini boleh disemak denganmelihat kod operasi yang terhasil iaitu $6002.

Alamat suruhan = $1000Sasaran = $1004

Ofset = $1004 – ($1000 + 2) = $02

Dalam baris 3, suruhan BRA * menyebabkan pemproses berlari di satu tempat. Semasa melak-sanakan suruhan, PC telah menunjuk ke suruhan berikut. Oleh itu, nilai ofset yang diperlukan ialah –2atau $FE.

Alamat suruhan = $1002Sasaran = $1002

Ofset = $1002 – ($1002 + 2) = $FE

Bagi baris 4, suruhan BRA MULA memerlukan ofset –6 atau $FA. Semasa melaksanakan suruhanBRA, nilai PC ialah $1006 manakala sasaran cabang ialah $1000.

Alamat suruhan = $1004Sasaran = $1000

Ofset = $1000 – ($1004 + 2) = $FA

Jika suruhan BRA.S LAST di baris 2 digantikan dengan suruhan BRA LAST, penghimpunmenganggap label LAST terletak jauh, dan menyediakan ofset 16 bit. Ini kerana semasa menghimpunsuruhan BRA, penghimpun belum bertemu dengan label LAST. Oleh itu, ia menyediakan ruang yanglebih besar bagi ofset yang akan nilainya hanya diisi apabila sampai ke LAST.

001000 1 ORG $1000001000 6000 0004 2 MULA BRA LAST001004 60FE 3 BRA *001006 60FA 4 LAST BRA MULA001008 5 END

Bagi ofset 16 bit, kata pertama suruhan BRA ialah $6000. Ofset sebenar terletak dalam kata berikutnya.Dalam contoh ini, nilai ofset $0004 terletak di alamat $10002.

Alamat suruhan = $1000Sasaran = $1006

Ofset 16 bit = $1006 – ($1000 + 2) = $0004

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 88: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

84 Bab 6. Kawalan Aturcara

6.3 Suruhan Cabang Bersyarat

Suruhan cabang bersyarat digunakan apabila perlaksanaan aturcara mesti berpecah kepada satu daripadadua laluan bergantung kepada keputusan operasi sebelumnya. Pada tahap termudah, ini bermaksudmelaksanakan satu turutan suruhan apabila sesuatu syarat dipenuhi. (Rujuk Rajah 6.3) Dalam bahasatahap tinggi, struktur ini berupa

if <syarat> then <S>

Rajah 6.3: Carta aliran untuk perlaksanaan bersyarat.

Dalam bahasa himpunan 68000, perlaksanaan bersyarat dilakukan 14 suruhan cabang bersyarat yangsecara am dikenali dengan mnemonik Bcc. Suruhan-suruhan ini mempunyai format

Bcc <label>

Huruf “cc” bermakna kod syarat (condition codes). Sama seperti suruhan BRA, suruhan Bcc

menggunakan mod alamat relatif PC. Nilai ofset yang ditambah kepada PC ialah 8 bit atau 16 bit.Sesetengah penghimpun membolehkan format Bcc.S untuk memaksa penggunaan ofset 8 bit (pendek)jika munasabah.

Rajah 6.4: Format mesin untuk suruhan cabang bersyarat.

Bagaimana bendera-bendera CCR diubah diringkaskan dalam Rajah 5.1. Jadual 6.1 menyenaraikankombinasi kod syarat (cc) yang disemak oleh suruhan-suruhan cabang bersyarat. Bendera-benderaini digunakan untuk menentukan sama ada nilai cc benar atau palsu. Jika syarat cc benar, nilai ofsetditambah kepada PC. Pada masa ini, PC mengandungi alamat suruhan Bcc tambah 2. Ini menyebabkankawalan dipindahkan ke sasaran cabang. Jika syarat cc palsu, nilai PC tidak diubah. Maka, pemprosesmelaksanakan suruhan yang menuruti suruhan Bcc. Rajah 6.4 menunjukkan format mesin bagi suruhanBcc. Nilai bagi bit 11:8 dalam suruhan ditentukan oleh kod dalam Jadual 6.1.

Pemilihan suruhan Bcc mesti mengambil kira bendera CCR mana yang telah diubah oleh suruhansebelumnya. Ada suruhan yang mengubah kesemua bendera N, Z, V dan C, seperti suruhan aritmetik,dan ada suruhan yang hanya mengubah bit Z seperti suruhan olahan bit (Rujuk Seksyen 5.9). SuruhanCMP, TST dan BTST pula berfungsi semata-mata mengubah bendera CCR tanpa mengubah sebarangdata lain dalam sistem. Apa pun, bit X tidak disemak oleh mana-mana suruhan cabang.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 89: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.3. Suruhan Cabang Bersyarat 85

Jadual 6.1: Suruhan cabang bersyarat.

Kod Suruhan Makna Syarat Benar jika0111 BEQ EQual to zero Sama/Sifar Z = 10110 BNE Not Equal to zero Tidak sama/bukan sifar Z = 01011 BMI MInus Negatif N = 11010 BPL PLus Positif N = 00101 BCS/LO Carry Set/Lower Ada bawa/Lebih rendah C = 10100 BCC/HS Carry Clear/Higher or Same Tiada bawa/Lebih tinggi atau sama C = 01001 BVS oVerflow Set Ada limpahan V = 11000 BVC oVerflow Clear Tiada limpahan V = 01110 BGT Greater Than Lebih besar Z ∧ (N

LV)=0

1101 BLT Less Than Kurang NL

V = 11100 BGE Greater than or Equal Lebih besar daripada atau sama N

LV = 0

1111 BLE Less than or Equal Kurang daripada atau sama Z ∨ (NL

V) = 10010 BHI HIgher Lebih tinggi C + Z = 00011 BLS Lower than or Same Lebih rendah atau sama C + Z = 1

Mencabang jika Sifar atau Bukan Sifar

Suruhan BEQ dan BNE adalah berlawanan antara satu sama lain. Suruhan

BEQ <label>

menyebabkan cabang diambil jika suruhan sebelumnya mengeluarkan hasil sifar. Suruhan

BNE <label>

mengakibatkan cabang jika hasil yang didapati bukan sifar. Kedua-dua suruhan boleh digunakan untukkendalian bertanda dan tak bertanda.

Contoh:

Padam D7 jika operasi D6 - 1 menghasilkan jawapan sifar.

Penyelesaian:

Keratan berikut memberikan hasil yang dikehendaki.

SUBQ.W #1,D6BNE BUKANCLR.W D7

Apabila hasil sifar, suruhan BNE tidak diambil dan pemproses melaksanakan CLR. Untuk nilai-nilailain, suruhan BNE mencabang ke label BUKAN dan tidak melaksanakan suruhan CLR.

Mencabang dengan Aritmetik Tak Bertanda

Aritmetik tak bertanda melibatkan nilai positif dan sifar sahaja. Kod syarat yang patut diuji selepasoperasi terhadap data tak bertanda ialah bendera Z dan C sahaja.

Bendera C menandakan jawapan yang dihasilkan oleh operasi tambah terlalu besar untuk saizyang digunakan. Dalam operasi tolak, bendera C menandakan keadaan pinjam yang berlaku apabilanilai besar ditolak daripada nilai kecil. Jika bendera C diset, jawapan yang terhasil tidak sah. Untukmencabang selepas aritmetik tak bertanda, suruhan yang digunakan ialah BCC (branch on carry clear)atau BCS (branch on carry set). berikut, misalnya, memastikan jawapan yang terhasil sentiasa sah:

ADD D0,D1BCS RALAT

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 90: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

86 Bab 6. Kawalan Aturcara

Contoh:

Tambah D1 kepada D0. Darab D2 dengan 2 jika ada bawa keluar.

Penyelesaian:

Keratan berikut adalah satu penyelesaian.

ADD.W D1,D0BCC TIADAMULU #2,D2

Suruhan yang dipilih ialah BCC. Jika terdapat bawa (C = 1), suruhan BCC tidak mencabang jadi suruhanMULU dilaksanakan. Sebaliknya, jika tiada bawa (C = 0) suruhan BCC mencabang ke label TIADA.

Mencabang dengan Aritmetik Bertanda

Selepas aritmetik bertanda, bendera N, Z dan V boleh disemak untuk menguji kesahan jawapan. BenderaV menyatakan sama ada operasi sebelumnya mempunyai limpahan (V = 1). Suruhan BVC mencabangapabila V = 0 dan suruhan BVS mencabang jika V = 1. Turutan berikut memastikan jawapan sentiasasah sebelum digunakan

ADD D0,D1BVS RALAT

Jika tiada limpahan (V = 0), bendera N dan Z digunakan untuk mencabang bagi jawapan negatif, sifaratau positif. Suruhan BMI mencabang jika jawapan negatif (N = 1) dan suruhan BPL mencabang jikajawapan positif (N = 0).

6.4 Suruhan CMP, TST dan BTST

Walaupun bit-bit dalam CCR diubah selepas perlaksanan suruhan-suruhan aritmetik dan sebagainya, tigasuruhan boleh digunakan untuk sengaja mengubah nilai CCR tanpa mengubah mana-mana kendalian.Suruhan-suruhan ini ialah CMP, TST dan BTST.

Suruhan CMP

Suruhan CMP (compare) melakukan perbandingan dengan menolak punca daripada destinasi. Hasiltolak yang terhasil tidak disimpan tetapi hanya mengubah bendera negatif (N), sifar (Z), limpahan (V)dan bawa (C). Bendera X tidak terkesan. Setelah diset, bendera-bendera ini seterusnya digunakan olehsuruhan Bcc. Suruhan CMP mempunyai format

CMP <ea>,Dn

Kendalian punca boleh ditentukan oleh sebarang mod alamat. Kendalian destinasi mestilah salahsatu daftar data. Saiz kendalian adalah byte, kata atau kata panjang. Bagaimanapun, jika kendalianpunca berada dalam daftar alamat, perbandingan byte dilarang.

Contoh suruhan ini ialah

CMP.W D0,D1

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 91: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.4. Suruhan CMP, TST dan BTST 87

Jadual 6.2: Kesan suruhan CMP terhadap bendera.

Keadaan X N Z V CPunca < Destinasi – 0 0 0/1 0Punca = Destinasi – 0 1 0 0Punca > Destinasi – 1 0 0/1 1

Jadual 6.3: Pemilihan suruhan cabang.

Syarat Nombor Tak Bertanda Nombor Bertandad > s BCC BGEd ≤ s BHI BGTd = s BEQ BEQd 6= s BNE BNEd ≥ s BLS BLEd < s BCS BLT

Apabila dilaksanakan, suruhan ini melakukan operasi D1 – D0 supaya punca ditolak daripadadestinasi. Jika nilai dalam D0 sama dengan D1, bit Z dalam CCR diset dan N, V dan C kesemuanyadipadam. Nilai dalam kedua-dua daftar D0 dan D1 tidak berubah. Jadual 6.2 meringkaskan kesan CMPterhadap bendera.

Setelah bendera-bendera diset oleh suruhan CMP, suruhan cabang yang sesuai boleh dilaksanakanuntuk mencabang bergantung kepada kaitan aritmetik kedua-dua kendalian. Jadual 6.3 menyenaraikansuruhan yang diperlukan untuk kendalian destinasi kurang, lebih atau sama dengan kendalian punca.

Variasi CMP

Terdapat beberapa variasi suruhan CMP iaitu CMPA, CMPI dan CMPM.

CMPA

Suruhan CMPA (compare address) sama dengan CMP kecuali kendalian mestilah berada di dalam daftaralamat. Untuk ini, hanya kendalian kata dan kata panjang diterima. Kendalian kata dipanjangkan ke katapanjang sebelum perbandingan dilakukan. Berikut suatu penggunaan CMPA.

CMPA.L #$1000,A1

CMPI

Suruhan CMPI (compare immediate) membandingkan kendalian terdekat dengan kendalian destinasiyang terletak di dalam daftar data, daftar alamat atau ingatan. Kesemua saiz data dibenarkan. Berikutsuatu penggunaan CMPI.

CMPI.B #’A’,D0

CMPM

Suruhan CMPM (compare memory) membandingkan dua kendalian yang terletak di dalam ingatan. Modalamat yang dibenarkan adalah pascatokok sahaja. Ia amat berguna untuk membandingkan rentetan.Saiz kendalian yang dibenarkan adalah byte, kata dan kata panjang. Berikut suatu penggunaan CMPM.

CMPM.B (A0)+,(A1)+

Kebanyakan penghimpun membenarkan mnemonik CMP mewakili keempat-empat suruhan CMP,CMPA, CMPI dan CMPM. Pemilihan format mesin dibuat tanpa campurtangan pengaturcara dan hanyaboleh dikesan jika fail output penghimpun disemak.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 92: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

88 Bab 6. Kawalan Aturcara

Suruhan TST

Suruhan TST (test) membandingkan sesuatu kendalian dengan sifar. Operasinya sama dengan suruhanCMP kecuali kendalian punca sentiasa dianggap sifar. Oleh itu ia melakukan operasi destinasi – 0 untukmenentukan nilai bendera. Format suruhan ini ialah

TST <ea>

Empat bit dalam CCR terkesan oleh suruhan TST. Bagaimanapun, hanya N dan Z diset atau dipadammenurut hasil tolak. Bit V dan C sentiasa dipadam.

Suatu contoh ialah suruhan

TST.B D0

Suruhan BTST

Suruhan BTST (bit test) menguji sama ada satu bit bersamaan sifar. Hanya bit Z terkesan. Suruhan inimempunyai dua format iaitu

BTST Dn,<ea>BTST #<data>,<ea>

Apabila destinasi ialah daftar data, mana-mana bit boleh dipilih menurut nombor modulo 32.Apabila destinasi ialah ingatan, operasi bersaiz byte dan nombor bit adalah modulo 8. Nombor bitboleh ditentukan dengan (1) mod terdekat – nombor bit sebahagian suruhan, dan (2) mod daftar – daftardata menentukan nombor bit.

Contoh 1:

Tambah nilai mutlak dalam kata rendah D6 kepada D7.

Penyelesaian:

Menambah nilai mutlak D6 bermakna jika D6 positif, ia boleh ditambah terus. Jika D6 negatif, ia perluditukarkan ke nilai positif terlebih dahulu.

CMP.W #0,D6BPL TAMBAHNEG.W D6

TAMBAH ADD.W D6,D7

Suruhan TST lebih sesuai apabila menguji sesuatu nilai hanya untuk mengetahui sama ada sifar ataunegatif. Turutan ini boleh ditulis semula begini:

TST.W D6BPL TAMBAHNEG.W D6

TAMBAH ADD.W D6,D7

Contoh 2:

Tambahkan D1 kepada D0 jika nilainya kurang daripada 5.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 93: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.4. Suruhan CMP, TST dan BTST 89

Penyelesaian:

Di sini kita perlu menggunakan suruhan CMP kerana membandingkan nilai dengan suatu nilai. Caranyabegini:

CMP.W #5,D1BHI SKIPADD.W D1,D0

SKIP ...

Suruhan TST tidak boleh digunakan di sini.

Contoh:

Bandingkan nilai dua byte tak bertanda dalam ingatan. Byte pertama terletak dalam alamat $2000, danbyte kedua terletak dalam $2001. Simpan nilai yang lebih besar di alamat $2002.

Penyelesaian:

Lihat di bawah.

MOVE.B $2000,D0CMP.B $2001,D0BHS SIMPANMOVE $2001,D0

SIMPAN MOVE.B D0,$2002

Untuk nombor bertanda, tukarkan suruhan BHS SIMPAN kepada BGT SIMPAN.

Contoh:

Tukar nilai ASCII dalam byte terendah D2 kepada huruf besar jika byte tersebut adalah huruf kecil.

Penyelesaian:

Huruf besar dalam ASCII ialah $41 (‘A’) hingga $5A (‘Z’) manakala huruf kecil terletak dalam julat $61(‘a’) hingga $7A (‘z’). Untuk menukar huruf kecil kepada huruf besar, nilai asal ditolak $20. Oleh sebabpenolakan perlu dilakukan hanya jika ‘A’ ≤ D2 ≤ ‘Z’, dua perbandingan diperlukan. Jika D2 kurangdaripada ‘A’ selepas perbandingan pertama, penolakan tidak diperlukan. Jika sebaliknya, perbandingankedua iaitu dengan ‘Z’ diperlukan. Jika D2 lebih daripada ‘Z’ setelah perbandingan kedua, penolakanjuga tidak perlu.

CMP.B #’A’,D2BCS TERUSCMP.B #’Z’,D2BHI TERUSSUB.B #$20,D2

TERUS ...

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 94: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

90 Bab 6. Kawalan Aturcara

6.5 Pemilihan Dua Turutan Suruhan

Selain perlaksanaan bersyarat, suruhan Bcc juga digunakan untuk memilih satu daripada dua turutansuruhan bergantung kepada syarat yang dinyatakan. Rujuk Rajah 6.5. Dalam bahasa tahap tinggi,struktur ini berupa:

if <ujian> then <S1> else <S2>

Dalam bahasa himpunan 68000, struktur ini berupa

<syarat> ; semak syarat dan set CCRBcc PALSU ; pilih cabang<S1> ; penyata benarBRA TAMAT ; keluar struktur

PALSU <S2> ; penyata palsuTAMAT .... ; sambung

Rajah 6.5: Carta aliran untuk pemilihan dua turutan suruhan.

Contoh:

Padam byte terendah D1 jika kata rendah D0 berisi sifar, isi D1 dengan –1 jika sebaliknya. Kemudiansimpan D1 di alamat $2000.

Penyelesaian:

Perbandingan dengan sifar dipermudahkan dengan suruhan TST.

TST D0BEQ SIFAR

BUKAN MOVEQ #-1,D1BRA DAH

SIFAR MOVEQ #0,D1DAH MOVE.B D1,$2000

Contoh:

Tukar nilai ASCII perenambelasan dalam byte terendah D0 kepada nilai setara perenambelasan dalambyte terendah D1. Jika D0 tidak mengandungi ASCII, isikan D1 dengan 1. Anggap data dalam D0 tidakmengandungi huruf kecil.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 95: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.6. Mengulang Turutan Suruhan 91

Penyelesaian:

Nilai ASCII perenambelasan ialah aksara ’0’ (ASCII $30) hingga ’9’ (ASCII $39), ’A’ (ASCII $41)hingga ’F’ (ASCII $5A) dan ’a’ (ASCII $61) hingga ’f’ (ASCII $7A). Nilai perduaan setara ialah0000 hingga 1001 untuk ’0’ hingga ’9’ dan 1010 hingga 1111 untuk ’A’ hingga ’F’ atau ’a’ hingga’f’. Bagaimanapun, D0 tidak mengandungi huruf kecil jadi semakan berbanding ’a’ hingga ’f’ tidakperlu. D0 hanya perlu disemak sama ada ia aksara digit atau huruf besar yang dibenarkan, kemudianpenolakan yang sesuai dilakukan.

CMP.B #’0’ ; SEMAK DGN HAD BAWAHBCS RALAT ;JIKA D0<’0’ MAKA RALATCMP.B #’9’,D0 ;SEMAK DGN HAD KEDUABHI SEMAK2 ;JIKA D0>’9’ MUNGKIN A-F

DIGIT SUB.B #$30,D0 ;DIGIT 0-9 JADI TOLAK \$30BRA DAH

SEMAK2 CMP.B #’A’,D0BCS RALAT ;JIKA D0<’A’ MAKA RALATCMP.B #’F’,D0BHI RALAT ;JIKA D0>’F’ RALAT JUGA

HKECIL SUB.B #55,D0 ;a-f JADI TOLAK 87BRA DAH

RALAT MOVEQ #-1,D0DAH MOVE.B D0,D1

6.6 Mengulang Turutan Suruhan

Mekanisme gelung membolehkan suatu turutan suruhan diulang seberapa banyak yang diperlukan.Terdapat beberapa konstruk gelung tetapi gelung asas dalam bahasa himpunan melaksanakan suatupenyata S, kemudian suatu syarat diuji. Jika syarat benar, penyata S diulang lagi. Jika syarat palsu,suruhan yang menuruti gelung dilaksanakan. Konstruk ini dinamai gelung pascauji1 kerana syaratgelung diuji setelah gelung dilalui. Carta alir gelung pascauji ditunjukkan dalam Rajah 6.6. Dalambahasa tahap tinggi konstruk ini berbentuk:

do<S>

while <syarat>;

Dalam bahasa himpunan 68000, gelung pascauji mempunyai tiga komponen:

ULANG <S> ; laksanakan penyata<Syarat> ; semak syarat dan set CCRBcc ULANG ; pilih cabang

Jumlah ulangan gelung bergantung kepada tugas yang perlu dilakukan. Biasanya, jumlah ulangantelah diketahui dan sebelum gelung dimasuki jumlah kiraan gelung diisi ke dalam salah satu daftar data.Ini merupakan fasa pememulaan. Di dalam gelung, nilai kiraan ini disusutkan. Apabila pembilangmencapai nilai sifar, gelung ditamatkan. Terdapat juga gelung yang jumlah ulangannya tidak diketahuicontohnya jika gelung digunakan untuk menerima input dari pengguna dan tamat apabila penggunamenekan kekunci <Enter>. Dalam kes ini, pengaturcara tidak tahu berapa kali gelung dilalui sebelum<Enter> ditekan.

1post-test loop

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 96: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

92 Bab 6. Kawalan Aturcara

Rajah 6.6: Gelung pascauji.

Berikut satu contoh gelung yang agak mudah. Gelung ini mengandungi suruhan NOP dan diulangsebanyak lima kali. Pada setiap laluan gelung, nilai pembilang disusutkan dan gelung ditamatkan setelahlima kali diulang. Penggunaan suruhan BNE paling mudah kerana ia mencabang jika pembilang bukansifar dan menyebabkan gelung ditamatkan jika pembilang mencapai sifar.

MOVEQ #5,D0 ; Pembilang gelung = 5LOOP NOP ; Kandungan gelung = tiada

SUBQ #1,D0 ; Susutkan pembilangBNE LOOP ; Ulang selagi pembilang belum sifar

Contoh:

Tulis turutan suruhan bagi mengira 10 + 9 + 8 + ... + 2 + 1 menggunakan gelung.

Penyelesaian:

Gunakan D0 sebagai pembilang gelung, dan D1 sebagai pengumpuk. Mula-mula isikan D0 dengan 10dan D1 dengan sifar. Pada setiap ulangan gelung, tambahkan D0 kepada D1 dan susutkan D0. Ulangsehingga D0 menjadi sifar.

MOVEQ #10,D0 ; Pembilang gelung = berapa kali lagi belum siapCLR.W D1 ; Pengumpuk

ULANG ADD.W D0,D1 ; Tambah nilai semasa kepada pengumpukSUBQ #1,D0 ; Susutkan pembilangBNE LOOP ; Ulang selagi pembilang belum sifar

Di akhir gelung, D1 akan mengandungi 55.

6.7 Bentuk Gelung Alternatif

Konstruk gelung pascauji adalah mudah tetapi isi gelung mesti dilaksanakan sekurang-kurangnya sekalisebelum syarat diuji. Ada masanya isi gelung perlu dielakkan daripada dilaksanakan jika syarat tidakdipenuhi. Konstruk gelung yang kedua ini meletakkan ujian syarat di awal gelung. Inilah gelung prauji2.Carta alir gelung prauji ditunjukkan dalam Rajah 6.7. Dalam bahasa tahap tinggi, gelung ini berupa:

while <syarat> do<S>

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 97: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.7. Bentuk Gelung Alternatif 93

Rajah 6.7: Gelung prauji.

Dalam pengaturcaraan bahasa himpunan 68000, konstruk ini lebih panjang berbanding konstruk gelungpascauji:

ULANG <Syarat> ; semak syarat dan set CCRBcc TAMAT ; keluar gelung?<S> ; laksanakan penyataBRA ULANG ; ulang

TAMAT ... ; sambung

Gelung prauji mengandungi dua suruhan cabang berbanding hanya satu untuk gelung pascaujisebelumnya. Jika kita ingin mempertingkatkan kecekapan aturcara, gelung ini boleh ditulis semulaseperti berikut bagi mengurangkan jumlah suruhan cabang di dalam gelung.

BRA CELAH ; lompat ke ujianULANG <S> ; laksanakan penyataCELAH <Syarat> ; kira ujian dan set CCR

Bcc ULANG ; keluar gelung?

Contoh:

Tulis aturcara yang mengira jumlah bit 1 dalam keseluruhan D0. Kiraan bit disimpan dalam D1.

Penyelesaian:

Satu kaedah mengira jumlah bit 1 ialah dengan menganjak daftar ke kiri menggunakan suruhan ASLatau LSL. Bit yang ditolak keluar oleh operasi anjak akan disimpan dalam bit C dan X. Jika bit C = 1,tokok pembilang bit.

Dalam aturcara ini, bentuk gelung prauji paling sesuai kerana ia memastikan data tidak sifar sebelummemulakan isi gelung. Jika data sifar pada awalnya, keseluruhan isi gelung diabaikan. Jika data bukansifar pada awalnya pun, kita tidak perlu menganjak sehingga 32 kali kerana mungkin hanya beberapa bitbernilai 1. Jika daftar terpadam, operasi pengiraan boleh terus ditamatkan. Misalnya, jika D0 bersamaan$8000000, gelung akan ditamatkan selepas satu ulangan sahaja.

;; KIRABIT.X68;

ORG $1000

2pre-test loop

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 98: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

94 Bab 6. Kawalan Aturcara

START MOVE.B #$AA55AA55,D0 ; D0 = data yg diujiCLR.B D1 ; D1 = jumlah bit 1

ULANG TST.L D0 ; jika D0 sifar, tamatkanBEQ TAMATASL.L #1,D0 ; anjak kiri sekaliBCC ULANG ; jika bit = 0, tak perlu buat apa2ADDQ.W #1,D1 ; jika bit = 1, tokok pembilangBRA ULANG

TAMAT MOVE.B #9,D0TRAP #15

END START

Aturcara yang ditunjukkan di atas adalah agak mudah. Terdapat banyak cara lebih canggih untukmengira bit 1.

Penutup

Bab ini telah menunjukkan bagaimana konstruk-konstruk asas dalam pengaturcaraan dilakukan dalambahasa himpunan 68000.

Latihan

1. Daftar D0 dan D1 masing-masing mengandungi byte tak bertanda. Atur supaya D0≥D1. Dengankata lain, jika D0 ≥ D1, jangan buat apa-apa, tetapi jika D0 < D1, tukarkan kedua-dua nilai.

2. Daftar D0, D1 dan D2 masing-masing mengandungi nilai bertanda 32 bit. Letakkan nilai yangpaling besar ke dalam D3.

3. Daftar D0 dan D1 masing-masing mengandungi byte bertanda. Jika kedua-duanya sama, letakkan0 dalam D2. Jika sebaliknya, letakkan –1 dalam D2.

4. Daftar D0, D1 dan D2 masing-masing mengandungi kata panjang tidak bertanda. Susun supayaD0 ≤ D1 ≤ D2. Gunakan daftar-daftar lain untuk simpanan sementara jika perlu.

5. Tulis turutan suruhan bagi menukar nilai BCD dalam byte terendah D0 ke bentuk perduaan hanyaD0 mengandungi nilai BCD yang sah. Contohnya D0.B = $37 ditukar menjadi $25. Jika D0mengandungi pola yang salah, setkannya menjadi $FF.

6. Tulis turutan suruhan bagi menukar nilai perduaan dalam byte terendah D0 ke bentuk BCD jika 0≤ D0.B ≤ 99. Jika D0 ≥ 100, setkan D0 menjadi $FF.

7. Tulis turutan suruhan bagi menukar nilai BCD dalam nibel terendah D0 ke bentuk ASCII jika 0≤D0.B ≤ 9. Contohnya D0.B = $04 ditukar menjadi ’4’ atau $34. Jika D0 > 9, setkan D0 menjadi‘X’.

8. Tulis turutan suruhan bagi menukar nibel terendah D0 ke bentuk ASCII, 0 ≤ D0.B ≤ 15.Contohnya D0.B = $04 ditukar menjadi ’4’ atau $34, dan D0.B = $0B ditukar menjadi ’B’ atau$42.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 99: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

6.7. Bentuk Gelung Alternatif 95

9. Tulis turutan suruhan bagi menukar byte terendah D0 ke bentuk ASCII dalam kata rendah D0.Contohnya D0.W = $XXB4 ditukar menjadi D0.W = ’B4’ atau $4234.

10. Tulis turutan suruhan bagi menukar nilai ASCII dalam byte terendah D0 ke BCD jika ’0’ ≤ D0 ≤’9’. Letakkan bendera C ke 0 jika berjaya, dan C ke 1 jika data terkeluar julat.

11. Tulis turutan suruhan bagi menukar nilai ASCII dalam byte terendah D0 ke perenambelasan jika’0’ ≤ D0 ≤ ’9’ atau ’A’ ≤ D0 ≤ ’F’. Setkan D1.W ke 0 jika berjaya, dan D1.W ke –1 jikasebaliknya.

12. Tulis turutan suruhan bagi menjumlahkan 1 + 2 + 3 + .. + 9 + 10 menggunakan gelung.

13. Tulis turutan suruhan bagi menjumlahkan 1 + 3 + 5 + 7 + ... + (2n+1) + ... + 19 + 21 menggunakangelung.

14. Tulis turutan suruhan bagi menjumlahkan 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55menggunakan gelung. Ini adalah janjang Fibonacci:

f0 = 0, f1 = 1, fn = fn−1 + fn−2

15. Tulis turutan suruhan bagi menjumlahkan 1 + 2 + 5 + 4 + 9 + 6 + 13 + 8 + 17 + 10 + ... + (2n+1)+ (n) + ... sehingga n = 25.

16. Tulis turutan suruhan bagi mengira9

∑i=0

i3.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 100: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

96 Bab 6. Kawalan Aturcara

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 101: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 7

Olahan Tatasusunan dan Rentetan

Objektif

• Konsep asas tatasusunan

• Ciri-ciri istimewa daftar alamat

• Olahan tatasusunan1

• Olahan rentetan2

• Pustaka fungsi EASy68k

7.1 Prinsip Tatasusunan

Tatasusunan adalah suatu struktur data yang menyimpan data dari jenis serupa. Setiap unsur di dalamnyabersebelahan. Pemilihan saiz unsur berdasar jenis data. Untuk aksara, misalnya, tatasusunan byte palingsesuai. Antara operasi yang lazim terhadap tatasusunan termasuk:

• mencari purata

• mencari jumlah

• mencari nilai terkecil atau terbesar1array2string

Rajah 7.1: Tiga bentuk tatasusunan dalam 68k.

97

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 102: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

98 Bab 7. Olahan Tatasusunan dan Rentetan

• mengisih unsur

Langkah pertama dalam penggunaan tatasusunan ialah mengisi daftar alamat dengan alamatpermulaan tatasusunan. Selepas unsur pertama dicapai, unsur-unsur berikutnya dicapai hanya denganmenambah daftar alamat. Nilai yang ditambah kepada daftar alamat bergantung saiz unsur. Dalampemprosesan tatusunan, lima parameter perlu diambil kira:

1. Alamat permulaan tatasusunan.

2. Jumlah unsur.

3. Saiz unsur.

4. Jenis data.

5. Alamat terakhir tatasusunan.

Sebagai contoh, terdapat suatu tatusunan 4 kata tak bertanda bermula dari alamat $2000. Denganmaklumat ini, kita boleh melengkapkan senarai di atas:

1. Alamat permulaan = $2000

2. Jumlah unsur = 4

3. Saiz unsur = 2 byte

4. Jenis data = integer tak bertanda

5. Alamat terakhir = alamat permulaan + (jumlah unsur – 1) * saiz unsur= $2000 + (4 – 1) * 2 = $2006

Keratan aturcara3 berikut menjumlahkan unsur-unsur tatasusunan seperti yang dikehendaki.

;; versi 1;

CLR D0 ; D0 = hasil tambahADD $2000,D0 ; tambah unsur 0ADD $2002,D0 ; tambah unsur 1ADD $2004,D0 ; tambah unsur 2ADD $2006,D0 ; tambah unsur 3

Walaupun keratan di atas berfungsi dengan sempurna mendapatkan hasil yang dikehendaki, ia kurangcanggih kerana untuk mengubah alamat permulaan, kita perlu mengubah sebanyak empat baris. Aturcaraberikut adalah satu pembaikan yang mana hanya satu baris perlu diubah untuk sebarang alamatpermulaan yang baru.

;; versi 2;

CLR D0 ; D0 = hasil tambahMOVE #$2000,A0 ; A0 = pangkal tatasusunanADD (A0),D0 ; tambah unsur 0ADDA #2,A0 ; tuding ke unsur 1

3Keratan aturcara (program snippets) adalah aturcara tidak lengkap yang menunjukkan hanya suruhan yang perlu.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 103: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.1. Prinsip Tatasusunan 99

ADD (A0),D0 ; tambah unsur 1ADDA #2,A0 ; tuding ke unsur 2ADD (A0),D0 ; tambah unsur 2ADDA #2,A0 ; tuding ke unsur 3ADD (A0),D0 ; tambah unsur 3

Terdapat satu pola suruhan berulangan dalam keratan ini. Selepas suruhan ADD, terdapat suruhanADDA yang mengemaskini daftar alamat. Operasi kemaskini daftar alamat boleh digabungkan dengansuruhan ADD menggunakan mod pascatokok untuk mengurangkan jumlah suruhan. Dengan modpascatokok, keratan bagi mencari jumlah 4 kata berturutan bermula dari alamat $2000 boleh ditulisseperti di bawah. Ia lebih pendek dan dilaksanakan dengan lebih pantas.

;; versi 3;

CLR D0 ; D0 = hasil tambahMOVE #$2000,A0 ; A0 = pangkal tatasusunanADD (A0)+,D0 ; tambah unsur 0, tuding ke unsur 1ADD (A0)+,D0 ; tambah unsur 1, tuding ke unsur 2ADD (A0)+,D0 ; tambah unsur 2, tuding ke unsur 3ADD (A0),D0 ; tambah unsur 3

Versi terakhir merupakan bentuk yang paling fleksibel.

;; versi 4;

CLR D0 ; D0 = hasil tambahMOVE #4,D1 ; D1 = jumlah ulangan gelungMOVE #$2000,A0 ; A0 = pangkal tatasusunan

LOOP ADD (A0)+,D0 ; tambah unsur, tuding ke unsur berikutSUBQ #1,D1 ; susutkan pembilangBNE LOOP ; ulang sampai tamat

Turutan aturcara dalam versi 4 sama panjang dengan dengan versi 3 jadi ia tidak menjimatkansuruhan. Bagaimanapun, ia mudah disesuaikan jika terdapat perubahan alamat dan jumlah gelung.Contohnya, untuk menambah 20 nombor, hanya isikan 20 ke dalam D1. Untuk menambah 20 nombordengan versi 1 hingga 3 bermakna kita terpaksa berhadapan dengan aturcara yang amat panjang danlebih sukar untuk dipastikan kesahannya. Rajah 7.3 menunjukkan carta alir am bagi menambah nombor-nombor dalam tatasusunan. Amnya, sebarang tatasusunan boleh diproses dengan hanya menukarkanalamat awal dan jumlah unsur.

Selain menjumlahkan unsur-unsur, ada banyak lagi operasi yang boleh dilakukan terhadap tata-susunan. Antara operasi tersebut ialah pemindahan blok.

"Penuding"

Rajah 7.2: Penggunaan penunjuk/penuding dalam olahan tatasusunan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 104: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

100 Bab 7. Olahan Tatasusunan dan Rentetan

MULA

awal tatasusunan

TAMAT

Rajah 7.3: Carta alir bagi menjumlah nombor-nombor dalam tatasusunan.

Contoh:

Pindahkan blok data 20 kata bermula dari $7000 ke suatu blok bermula di $8000. Gunakan mod alamatpascatokok.

Penyelesaian:

Pemindahan blok menyalin data dari satu tempat ke tempat lain dalam ingatan. Aturcara berikutmelakukan operasi yang dikehendaki.

ORG $1000

START MOVEA.W #SOURCE,A0MOVEA.W #DEST,A1MOVE.W #20,D0

PINDAH MOVE.W (A0)+,(A1)+SUB.W #1,D0BNE PINDAH

MOVE.B #9,D0TRAP #15

ORG $7000SOURCE DC.W 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

ORG $8000DEST DS.W 20

END START

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 105: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.2. Isu-Isu Dalam Olahan Tatasusunan 101

7.2 Isu-Isu Dalam Olahan Tatasusunan

Saiz Data

Aturcara berikut menjumlahkan 5 integer 16 bit yang terdapat dalam $1000 hingga $1008. Carta alirprogram ini telah ditunjukkan dalam Rajah 7.3.

CLR.W D0 ; hasiltambah = 0MOVEQ.B #5,D1 ; pembilang = 5MOVEA.L #$1000,A0 ; penuding = awal senarai

ULANG ADD.W (A0)+,D0 ; tambah unsurSUBQ.B #1,D1BNE ULANG

Aturcara ini adalah memadai untuk tatasusunan asas tetapi ia tidak kebal. Jika terlalu banyak nomborditambah, besar kemungkinan terdapat limpahan kerana hasil tambah melebihi 16 bit. Penyelesaiannyaialah dengan menyediakan hasil tambah 32 bit. Keratan di bawah menunjukkan mengganggappenambahan nilai-nilai bertanda.

CLR.L D0 ; hasiltambah 32 bit = 0MOVEQ.B #5,D1 ; pembilang = 5MOVEA.L #$1000,A0 ; penuding = awal senarai

ULANG MOVE.W (A0)+,D2 ; ambil unsur ke daftar sementaraEXT.W D2 ; tukar ke 32 bitADD.L D2,D0 ; tambah ke pengumpukSUBQ.B #1,D1BNE ULANG

Keratan berikut pula ialah penyelesaian untuk angka-angka tak bertanda

CLR.L D0 ; hasiltambah 32 bit = 0MOVEQ.B #5,D1 ; pembilang = 5MOVEA.L #$1000,A0 ; penuding = awal senaraiCLR.L D2 ; padam daftar sementara

ULANG MOVE.W (A0)+,D2 ; salin nilai 16 bit ke daftar 32 bitADD.L D2,D0 ; tambahkan 32 bit ke pengumpuk 32 bitSUBQ.B #1,D1BNE ULANG

Suruhan DBcc

Untuk memendekkan gelung, satu kaedah lanjutan ialah menggunakan siri suruhan DBcc. Logik suruhanDBcc ditunjukkan dalam Rajah 7.4. Dalam suruhan DBcc, gelung boleh ditamatkan sama ada disebabkansyarat cc dipenuhi atau apabila Dn mencapai –1. Bagaimanapun, suruhan DBcc selain DBRA dan DBFboleh mengelirukan dan pastikan anda memahami betul-betul operasinya sebelum menggunakan.

Contoh di bawah memindahkan 100 kata secara pukal dari blok punca ditunjuk oleh A0 ke bloksasaran oleh A1. Jumlah kata yang perlu dipindah diisi ke dalam D0.

MOVE.W #100,D0PINDAH MOVE.W (A0)+,(A1)+

SUBQ.W #1,D0BNE PINDAH

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 106: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

102 Bab 7. Olahan Tatasusunan dan Rentetan

Rajah 7.4: Suruhan DBcc.

Gelung ini boleh diubahsuai gelung untuk menggunakan suruhan DBF. Kiraan gelung dalam D0 perludiubah kerana gelung DBF tamat setelah kiraan mencapai -1. Suruhan DBF boleh juga ditulis sebagaiDBRA.

MOVE.W #99,D0ULANG MOVE.W (A0)+,(A1)+

DBRA D0,ULANG

Ternyata gelung yang dikawal oleh DBRA atau DBF lebih pendek.

Suruhan Olahan Daftar Alamat

Terdapat beberapa suruhan yang disediakan khusus untuk olahan daftar alamat. Suruhan MOVEA(Move to Address Register) mengisikan daftar alamat. Suruhan ADDA (Add to Address Register) yangtelah digunakan sebelum ini menambahkan nombor kepada daftar alamat. Suruhan SUBA (Subtractfrom Address Register) pula digunakan untuk menolak nilai dari daftar alamat. Saiz kendalian yangdibenarkan ialah .W dan .L. Keseluruhan daftar alamat akan berubah walaupun saiz kendalian adalah16 bit. Kesemua suruhan ini tidak mengubah daftar CCR. Bagi menguji daftar alamat, gunakan suruhanCMPA (Compare Address Register).

Untuk mengisikan daftar alamat, suruhan LEA (Load Effective Address) boleh digunakan meng-gantikan suruhan MOVEA. Ia lebih canggih kerana boleh melakukan pengiraan alamat sebelum daftaralamat diisi.

Sebagai contoh, suruhan LEA berikut:

LEA 2(A1,D0.W),A0

sama dengan turutan tiga suruhan berikut, tanpa mengubah A1.

ADDA.W D0,A1ADD.L #2,A1MOVEA.L A1,A0

Dua suruhan berikut pula adalah setara:

LEA $2000,A0MOVEA.L #$2000,A0

Simbol ‘#’ tidak boleh digunakan dengan suruhan LEA. Suruhan LEA hanya boleh mengisikan 32 bitke dalam daftar alamat.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 107: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.3. Kajian Kes Olahan Tatasusunan 103

7.3 Kajian Kes Olahan Tatasusunan

Seksyen ini menunjukkan beberapa operasi yang lazim dilakukan terhadap tatasusunan.

Memilih Unsur

Satu operasi yang kerap dilakukan ialah mencari unsur dengan ciri-ciri tertentu. Dalam contoh berikut,satu tatasusunan diimbas untuk mencari untuk paling besar. Jawapannya diletakkan dalam daftar D1.

** MAX.X68*

ORG $1000

START MOVEQ #20,D0 ; pembilang = 20CLR D1 ; setkan maximum kpd 0LEA ARRAY,A0 ; A0 = pangkal tatasusunan

ULANG MOVE.W (A0)+,D2 ; salin unsur semasa ke daftar sementaraCMP.W D2,D1 ; banding unsur semasa dengan maximumBLS SKIP ; jika lebih makaMOVE.W D2,D1 ; kemaskini maximum

SKIP SUBQ.B #1,D0BNE ULANG

MOVE.B #9,D0TRAP #15

ARRAY DC.W 2,3,0,10,15,7,55,30,37,20,9,14,13,12,44,29,21,31,1,8

END START

Dengan mengubah suruhan BLS ke suruhan cabang yang sesuai, aturcara ini boleh diubah untukmencari minimum atau maksimum untuk data bertanda atau tidak bertanda.

Membilang Unsur dengan Kriteria Tertentu

Aturcara di bawah membilang unsur yang genap. Untuk mengetahui sama ada sesuatu nilai genap,semak bit terendah. Sebarang nilai yang boleh dibahagi dua mempunyai bit 0 bersamaan sifar.

** KIRAGENAP.X68*

ORG $1000

START LEA ARRAY,A0 ; A0 = awal tatasusunanMOVE.W #COUNT,D0 ; D0 = bil. unsur keseluruhanCLR.W D1 ; D1 = bil. unsur ikut kriteria

ULANG MOVE.W (A0)+,D2 ; bawa unsur ke daftar sementaraBTST.W #0,D2 ; uji sama ada genapBNE SKIPADDQ.W #1,D1 ; tokok pembilang jika genap

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 108: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

104 Bab 7. Olahan Tatasusunan dan Rentetan

SKIP SUBQ.W #1,D0 ; susut pembilang unsurBNE ULANG

MOVE.B #9,D0TRAP #15

ARRAY DC.W 10,8,2,-1,7,-7,3,-2,9,0,11COUNT EQU (*-ARRAY)/2

END START

Untuk membilang data dengan kriteria lain, tukarkan suruhan BTST.W #0,D0 dengan suruhan BTST,TST atau CMP yang sesuai. Untuk data dengan dua kriteria, contohya unsur bernilai antara 1 hingga 5,dua suruhan perbandingan diperlukan.

Aturcara ini menunjukkan kaedah bagi mengelakkan kita mengira jumlah unsur dalam tatasusunan.Simbol ‘*’ memberikan nilai semasa pembilang lokasi penghimpun. Ungkapan (*–ARRAY) akanmendapatkan beza alamat antara hujung dan pangkal tatasusunan, dan ungkapan (*–ARRAY)/2memberikan jumlah unsur.

Mengisih Tatasusunan

Mengisih bermakna menyusun unsur-unsur supaya setiap unsur lebih kecil (atau lebih besar) daripadajiran yang menurutinya. Bagi senarai dengan lima unsur, a0 hingga a4, rumus berikut akan menjadibenar setelah diisih.

a0 ≤ a1 ≤ a2 ≤ a3 ≤ a4

Algoritma asas isihan ialah isihan gelembung4. Untuk mengisih senarai n unsur , senarai diimbasn–1 kali. Dalam laluan pertama, penuding mengimbas ke unsur 0 hingga unsur n–2. Bagi setiap nilaipenuding, unsur pada penuding (ai) dibandingkan dengan unsur disebelahnya (ai+1). Jika ai > ai+1,kedua-dua unsur ditukarganti. Setelah selesai satu laluan, unsur terbesar dalam senarai akan dipindahkansedikit demi sedikit ke hujung senarai (seperti gelembung udara dalam akuarium).

Untuk laluan berikutnya tatasusunan diimbas semula dari mula tetapi jumlah perbandingan diku-rangkan satu berbanding laluan pertama kerana unsur terbesar telah dikeluarkan dari senarai. Seterusnya,setiap laluan memendekkan senarai yang perlu diimbas sehingga panjang senarai tinggal 2 unsur.

Untuk mengelakkan senarai diimbas jika senarai telah berada dalam keadaan terisih, konsep benderaperisian5 diperkenalkan. Di sini D5 berfungsi sebagai pembolehubah Boolean yang bernilai 0 di awalsetiap imbasan dan diset ke –1 jika berlaku penukaran. Jika bendera didapati masih sifar setelah tamatsuatu laluan, ini bermakna senarai telah terisih dan laluan seterusnya tidak diperlukan.

** ISIH.X68*

ORG $1000

START LEA ARRAY,A0

ISIH MOVE.W (A0)+,D0 ; kata pertama = jumlah unsurMOVEA.L A0,A1 ; salin penuding

GLUAR MOVEA.L A1,A0 ; reset penuding ke awal tatasusunan

4bubble sort5software flag

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 109: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.3. Kajian Kes Olahan Tatasusunan 105

CLR.W D5 ; padam bendera tukargantiSUB.W #1,D0 ; susutkan bilangan perbandinganMOVE.W D0,D1 ; salin ke pembilang dalam

GDALAM MOVE.W (A0)+,D2 ; ambil satu kataCMP.W (A0),D2 ; banding dgn jirannyaBLE.S SKIP ; jika kata(i) < kata(i+1) makaMOVE.W (A0),-2(A0) ; tukarganti kata(i) <-> kata(i+1)MOVE.W D2,(A0)MOVEQ #-1,D5 ; dan set bendera tukarganti

SKIP SUB.W #1,D1 ; susutkan pembilang dalamBNE GDALAM ; teruskan selagi pembilang dalam belum 0

TST.W D5 ; semak bendera tukargantiBNE.S GLUAR ; jika bendera set, buat semula

MOVE.B #9,D0 ; tamatkan programTRAP #15

ARRAY DC.W 8,-1,2,8,5,9,3,-3,4

END START

Rajah 7.5 menunjukkan operasi isihan gelembung. Dalam laluan pertama, nilai 9 turun beransur-ansur ke dasar tatasusunan. Nilai ini tidak lagi dilihat semasa laluan kedua. Petak-petak berwarna kelabudalam rajah sebelah bawah ialah unsur-unsur yang telah siap diisih. Nilai terkecil, –3, boleh dilihat naikke atas tatasusunan perlahan-lahan selepas setiap laluan seperti satu gelembung.

Rajah 7.5: Isihan gelembung..

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 110: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

106 Bab 7. Olahan Tatasusunan dan Rentetan

7.4 Rentetan

Rentetan amnya ditakrifkan sebagai tatasusunan yang mengandungi hanya aksara. Rentetan diakhirinol6 adalah rentetan yang mengandungi kod-kod ASCII dan diakhiri oleh aksara NOL (ASCII 0).Mengakhiri rentetan dengan aksara NOL membolehkan pengaturcara memendek atau memanjangkanrentetan sesuka hati kerana jumlah aksara tidak perlu diketahui. Ini kerana aksara NOL mudah diujidalam bahasa himpunan. Seksyen ini akan menunjukkan olahan-olahan yang kerap dilakukan terhadaprentetan.

Rajah 7.6: Suatu rentetan diakhiri NOL.

Antara operasi-operasi yang lazim dilakukan terhadap rentetan termasuk:

• Mencari panjang rentetan

• Menukar aksara-aksara ke huruf besar atau huruf kecil

• Membanding dua rentetan

• Mencari kewujudan satu aksara atau sub-rentetan

• Mencantumkan dua rentetan

Mencari Panjang Rentetan

Walaupun kebanyakan operasi tidak memerlukan jumlah aksara diketahui, ada masanya jumlah aksaramasih diperlukan. Aturcara di bawah membilang aksara-aksara dalam rentetan sehingga terjumpa aksaraNOL.

** STRLEN.X68*

ORG $1000;START LEA #STRING,A0

CLR D1

ULANG TST.B (A0)+ ; uji aksara semasaBEQ SIAP ; jika aksara = NOL, siapADDQ #1,D1BRA ULANG

SIAP MOVE.B #9,D0

6null-terminated string

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 111: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.4. Rentetan 107

TRAP #15

STRING DC.B ’Suatu rentetan yang panjang dan memakan masa menyemaknya’,0END START

Panjang rentetan dilaporkan dalam D1. Gelung utama ditulis dalam bentuk gelung prauji kerana adakemungkinan rentetan kosong. Jika rentetan kosong, aturcara ditamatkan dengan D1 sifar.

Menukarkan Aksara-Aksara ke Huruf Besar

Menyeragamkan aksara-aksara adalah satu operasi lazim. Katakan suatu sistem mula beroperasiselepas pengguna menaip ’GO’. Pengguna mungkin menekan ’Go’, ’GO’, ’go’ atau ’gO’. Walaupunsemantiknya sama, keempat-empat rentetan ini berbeza dalam bentuk ASCII. Tanpa menukar kehuruf besar, aturcara perlu menyemak input sama ada bersamaan dengan salah satu daripada empatkemungkinan. Jika semua huruf ditukar ke huruf besar, atucara cuma perlu membandingkan inputdengan rentetan ’GO’.

Aturcara di bawah memperlihatkan operasi menukar huruf-huruf kecil dalam rentetan kepada hurufbesar.

** LUCK.X68 (lower to upper case Konversion)*

ORG $1000

START LEA STRING,A0

LOOP MOVE.B (A0)+,D0BEQ EXIT ; Jika NOL, tamatkan aturcaraCMP.B #’a’,D0BLT LOOPCMP.B #’z’,D0BGT LOOP ; Tukar huruf kecil sahajaSUB.B #$20,D0 ; ASCII Huruf besar = ASCII huruf kecil - $20MOVE.B D0,-1(A0) ; Simpan semula ke ingatanBRA LOOP

EXIT MOVE.B #9,D0TRAP #15

STRING DC.B ’SuAtU rEnTeTaN DeNgAn HuRuF kEcIl BeRcAmPuR bEsAr 123$!*()’,0END START

Hanya huruf kecil perlu diolah menjadi huruf besar. Aksara-aksara lain tidak boleh diusik langsung.Huruf kecil ditukar ke huruf besar dengan menolak $20 dari kod ASCII. Contohnya, huruf ’A’mempunyai kod $40 dan huruf ’a’ mempunyai kod $60. Menolak $20 dari kod ASCII mana-manahuruf kecil mengubahnya menjadi huruf besar.

Mencari Aksara dalam Senarai

Dalam mencari kewujudan suatu aksara tertentu dalam rentetan, terdapat dua cara keluar gelung.Pertama, aksara dijumpai. Kedua, gelung telah diimbas sampai ke penghujung. Ini satu lagi algoritmayang sesuai digunakan bendera perisian. Dengan menganggap aksara tidak dijumpai dari mula, benderadiset ke 0. Jika aksara dijumpai barulah bendera diisikan dengan –1 (atau sebarang nilai bukan sifar).

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 112: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

108 Bab 7. Olahan Tatasusunan dan Rentetan

** STRSCAN.X68*

ORG $1000

LEA STR,A0 ; penuding ke awal rentetanMOVE.B #’A’,D0 ; aksara yang dicariCLR.B D0 ; anggap tidak jumpa

CARI TST.B (A0) ; tamat jika jumpa NOLBEQ EXITCMP.B (A0)+,D0 ; cari selagi belum jumpaBNE CARI

JUMPA MOVEQ #-1,D0 ; jika jumpa, set bendera ke -1

EXIT MOVE.B #9,D0TRAP #15

STR DC.B PREDECREMENT ADDRESS REGISTER INDIRECT,0

END

7.5 Operasi Output Aksara

Peranti input/output 68000 terletak dalam peta ingatan, serupa dengan kedudukan ingatan lain. Menuliske alamat yg disambung ke peranti output mengeluarkan maklumat. Konsep ini dinamai input/outputterpeta ingatan.

Peranti input/output (seperti papan kekunci dan pencetak) adalah jauh lebih lambat berbandingpemproses. Operasi input/output hanya boleh dilakukan dengan syarat peranti bersedia. Ini dinamaiinput/output bersyarat. Setiap peranti dalam input/output bersyarat mempunyai sekurang-kurangnyadua daftar berikut (Lihat Rajah 7.7):

• Daftar status — memberitahu kesediaan peranti

• Daftar data — di mana data dibaca atau ditulis

Lazimnya, setiap bit daftar status mempunyai fungsi tertentu. Satu bit dalam daftar status sudahcukup untuk memberitahu status peranti. Rajah 7.8 menunjukkan carta aliran bagi melakukan operasioutput dengan peranti yang mempunyai daftar status.

Rajah 7.7: Peranti input/output dengan daftar status.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 113: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.5. Operasi Output Aksara 109

Rajah 7.8: Carta aliran bagi operasi output bersyarat.

Contoh 1:

Diberi suatu antaramuka dengan pencetak dengan daftar status di alamat $FF8001 dan daftar data dialamat $FF8003. Tunjukkan turutan suruhan untuk mengeluarkan byte dalam D0. Anggapkan bit 1bersamaann 1 dalam daftar status periferal mewakili peranti sedia.

Penyelesaian:

Untuk menyemak mana-mana bit bersamaan 1 atau 0, suruhan yang sesuai ialah BTST. Suruhan BPLboleh digunakan untuk mengulang semakan daftar status selagi bit bernilai 0.

ULANG BTST #1,$FF8001 ; uji bit dalam daftar status periferalBPL ULANG ; jika 0, peranti belum sediaMOVE.B $D0,$FF803 ; jiak 1, keluarkan byte

Contoh 2:

Katakan pencetak mempunyai antaramuka seperti dalam Contoh 1. Hantarkan rentetan ’HELLO’ kepencetak.

Penyelesaian:

Dengan menggunakan rentetan diakhiri NOL, mudah mengetahui bila rentetan telah sampai hujungkerana suruhan MOVE mengemaskini bendera Z. Jika aksara bukan NOL telah dihantar ke pencetak, Z= 0 dan gelung diulang dengan suruhan BNE. Jika aksara NOL telah dihantar, gelung ditamatkan.

STATUS EQU $FF8001DATA EQU $FF8003

LEA HELLO,A0 ; penuding = awal rentetan

ULANG BTST #1,STATUS ; semak statusBPL ULANG ; ulang jika sifar

MOVE.B (A0)+,DATA ; hantar aksara ke pencetakBNE ULANG ; ulang hingga tamat...

HELLO DC.B ’HELLO’,0

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 114: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

110 Bab 7. Olahan Tatasusunan dan Rentetan

7.6 Rutin TRAP dalam Easy68k

Simulator Easy68k menyediakan beberapa rutin bagi pemindahan input/output standard. Rutin-rutin inimembentuk suatu pustaka yang mengelakkan pengaturcara menulis sendiri rutin-rutin asas. Penggunaanpustaka rutin menjimatkan masa serta menyeragamkan aturcara-aturcara yang ditulis untuk sesuatuplatform.

Setiap rutin Easy68k digelar fungsi atau tugas. Untuk menggunakan mana-mana tugas Easy68k,kod tugas diisi ke dalam byte terendah D0 diikuti dengan suruhan TRAP #15. Contohnya, tugas 6memaparkan aksara dalam D1 ke konsol.

MOVE.B #’A’,D1 ; ASCII bagi aksaraMOVE.B #6,D0 ; pilih kod tugasTRAP #15 ; laksanakan output

Jadual 7.1 menyenaraikan beberapa tugas yang tersedia dalam EASy68k. Bagi mendapatkan senarailengkap, rujuk menu Help dalam EASy68k. Rentetan diakhiri NOL digunakan oleh tugas 2, 13 dan14. Bagi tugas 13 dan 14 terdapat rujukan aksara CR dan LF. Aksara CR7 adalah ASCII 13 yangmengembalikan penggesa8 ke kiri skrin. Aksara LF9 adalah aksara ASCII 10 yang menggerakkanpenggesa sebaris ke bawah. Kombinasi CR dan LF meletakkan penggesa di baris baru dalam lajurpaling kiri.

Sistem papan tunggal seperti FLIGHT68K pula menggunakan mekanisme berbeza untuk melakukanI/O tetapi konsep asasnya sama iaitu menyediakan pustaka bagi kemudahan pengguna.

Contoh 1:

Gunakan rutin TRAP yang disediakan oleh EASy68k untuk mengeluarkan perutusan “HELLO”.

7carriage return8cursor9linefeed

Jadual 7.1: Beberapa tugas TRAP #15 pustaka Easy68k

Nombor Tugas2 Baca rentetan dari papan kekunci dan simpan di (A1). Panjang dilaporkan di D1.W (max 80)3 Papar nombor bertanda dalam D1.L dalam perpuluhan4 Baca nombor dari papan kekunci ke D1.L5 Baca satu aksara dari papan kekunci ke D1.B6 Papar satu aksara dalam D1.B7 D1.B bernilai 1 jika ada input di papan kekunci, 0 sebaliknya. Gunakan tugas 5 untuk membaca

kekunci8 Kembalikan 1/100 saat sejak tengah malam dalam D1.L. Amat berguna untuk mendapatkan

nombor rawak.9 Tamatkan program (Hentikan simulator)

13 Papar rentetan di (A1) dengan CR, LF.14 Papar rentetan di (A1) tanpa CR, LF.15 Papar nombor tak bertanda dalam D1.L yang ditukar ke dasar (2 hingga 36) terkandung dalam

D2.B. Contohnya, untuk memaparkan D1.L dalam perenambelasan letakkan 16 dalam D2.B.Nilai di luar 2 hingga 36 diabaikan.

17 Kombinasi tugas 14 dan 3. Papar rentetan di (A1) tanpa CR, LF kemudian papar nomborperpuluhan dalam D1.L

18 Kombinasi tugas 14 dan 4. Papar rentetan di (A1) tanpa CR, LF kemudian baca nombor daripapan kekunci ke D1.L

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 115: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.6. Rutin TRAP dalam Easy68k 111

Penyelesaian:

Letakkan alamat rentetan dalam A1 dan kod 13 (atau 14) dalam D0.

** HELLO.X68*

ORG $1000

START LEA HELLO,A1

MOVE.W #13,D0TRAP #15 ; paparkan HELLO

MOVE.W #9TRAP #15 ; tamatkan program

HELLO DC.B ’HELLO’,0

END START

Contoh 2:

Baca suatu rentetan dan laporkan panjang (jumlah aksara) di dalamnya.

Penyelesaian:

Tugas 2 boleh digunakan untuk membaca rentetan. Sebelum melaksanakan TRAP, letakkan alamat dasarpenimbal rentetan dalam A1. Sekembalinya dari TRAP, penimbal telah diisi oleh rentetan dan panjangrentetan boleh dibaca dari D1.W. Untuk memaparkan rentetan dan nilai dalam D1, gunakan tugas 17.

** Aturcara untuk membaca rentetan dan melaporkan panjangnya.*

ORG $1000

START LEA BUFFER,A1 ; sediakan penuding ke penimbal

MOVE.W #2,D0TRAP #15 ; baca rentetan, D1.W = panjangnya

LEA REPORT,A1MOVE.B #17,D0TRAP #15 ; papar mesej dan panjang rentetan

MOVE.B #9,D0TRAP #15

BUFFER DS.B 80 ; max rentetan 80 aksaraREPORT DC.B ’Panjang rentetan : ’,0

END START

Tugas 17 (18) boleh juga dilakukan berasingan melalui tugas 14 dan 3 (4).

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 116: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

112 Bab 7. Olahan Tatasusunan dan Rentetan

7.7 Penggunaan Tatusunan Lanjutan

Selain dicapai senarai linear dari awal ke akhir, tatasusunan boleh dicapai secara rawak melalui indeks.Dua aplikasi berkenaan adalah jadual penukaran dan jadual lompat.

Jadual Penukaran

Operasi menukar dari satu kod ke kod yang lain boleh dilaksanakan dengan cekap melalui jadualpenukaran10. Dalam contoh di bawah, 4 bit paling bawah dalam D2 hendak ditukar ke bentuk ASCIIsebelum dipaparkan.

** Aturcara untuk membaca rentetan dan melaporkan panjangnya.*

ORG $1000

START MOVE.B #8,D0TRAP #15 ; dapatkan nombor rawakAND.W #$F,D0 ; ambil hanya 4 bit terendah

LEA LUT,A0MOVE.B (A0,D0),D1 ; tukar ke bentuk ASCII

MOVE.B #6,D0TRAP #15 ; papar aksara terhasil

MOVE.B #9,D0 ; ganti dgn BRA START utk operasi tanpa hentiTRAP #15

LUT DS.B ’0123456789ABCDEF’

END START

Nilai indeks ke jadual diambil secara rawak ke D0. Suruhan MOVE.B (A0,D0) seterusnya mencapaijadual bergantung nilai indeks.

Jadual Lompat

Suruhan JMP berupaya melaksanakan struktur switch seperti yang kerap terdapat di dalam bahasa tahaptinggi. Dalam contoh di bawah, input pengguna yang sah dari 0 hingga 3 mengarah sistem melakukansesuatu operasi dengan melaksanakan satu rutin. Nilai-nilai lain dianggap tidak sah dan menyebabkaninput diambil semula.

switch(input) case 0: execute(); break;case 1: pause(); break;case 2: reset(); break;case 3: step(); break;default: readkey();

Turutan berikut melaksanakan struktur switch di atas. Nilai input dianggap terletak dalam daftar D0.

10lookup table

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 117: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

7.7. Penggunaan Tatusunan Lanjutan 113

CMP.W #3,D0 ; pastikan input jangan lebih 4BLT SKIPMOVE.W #4,D0

SKIP ASL.L #2,D0 ; input darab 4LEA ADDR0,A0 ; A0 = alamat dasar tatasusunanJMP (A0,D0) ; lompat ke rutin

JUMPTBL DC.L EXECUTE ; "Jump Table"DC.L PAUSEDC.L RESETDC.L STEPDC.L READKEY

Nilai dalam D0 perlu dipastikan tidak melebihi 4. Nilai-nilai melebihi digantikan dengan 4.Seterusnya, nilai D0 didarab 4 kerana saiz setiap alamat ialah 4 byte. Suruhan ASL.L #2,D0 digunakankerana ia jauh lebih pantas berbanding MULU #4,D0. Suruhan LEA JUMPTBL,A0 mengisikan A0dengan alamat pertama dalam senarai. Akhir sekali, suruhan JMP (A0,D0) akan melompat ke rutinyang betul bergantung kepada nilai D0.

Penutup

Bab ini telah menunjukkan bagaimana operasi asas terhadap tatasusunan dan rentetan dilakukan dalambahasa himpunan 68000. Untuk memudahkan pengaturcaraan, pustaka fungsi EASy68k diperkenalkan.

Latihan

1. Tulis aturcara yang mencari purata semua unsur-unsur dalam satu tatasusunan nombor 16 bit takbertanda.

2. Tulis aturcara yang mencari nilai maksimum dalam satu tatasusunan nombor 32 bit bertanda.

3. Tulis aturcara yang membilang nilai-nilai yang boleh dibahagi 3 dalam satu tatasusunan nombor8 bit bertanda.

4. Tulis aturcara yang menukar kesemua huruf besar dalam rentetan ke huruf kecil.

5. Tulis aturcara yang membandingkan dua rentetan, S1 dan S2. Laporkan perbandingan dengankaedah berikut:

S1 = S2 → D0 = 0

S1 < S2 → D0 = sebarang nilai negati f

S1 > S2 → D0 = sebarang nilai positi f

6. Tulis aturcara yang menarik keluar sub-rentetan yang bermula dari aksara ke-5 hingga ke-8daripada satu rentetan lebih panjang. Contohnya, daripada rentetan ’Selamat Datang’, sub-rentetan yang dimaksudkan ialah ’mat ’.

7. Input 10 nombor 16 bit tak bertanda menggunakan tugas 4 EASy68K. Outputkan nombor terbesardan terkecil.

8. Input satu turutan nombor 16 bit tak bertanda dan paparkan jumlah semasa. Hentikan aturcaraapabila jumlah melebihi $1000, dan laporkan jumlah nombor yang diinput.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 118: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

114 Bab 7. Olahan Tatasusunan dan Rentetan

9. Tulis turutan suruhan bagi mengira15

∑i=0

a2i

50yang mana ai adalah kata bertanda yang terletak di

ingatan bermula dari alamat $2000.

10. Tulis turutan suruhan bagi mengira11

∑i=0|xi− yi| yang mana xi dan yi adalah dua tatasusunan byte

yang terletak di ingatan bermula dari alamat $2000 dan $2010.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 119: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 8

Tindanan dan Subrutin

Objektif

• Konsep asas tindanan

• Penggunaan subrutin

• Teknik pengiriman parameter

• Melindungi isi daftar

Pengenalan

Program yang baik ditulis berdasarkan konsep modulariti – memecahkan program besar kepadabeberapa subrutin. Satu program utama mengandungi struktur asas manakala unit-unit program kecildipanggil subrutin melaksanakan kesemua butiran terperinci. Operasi subrutin bergantung kepadatindanan.

8.1 Tindanan

Tindanan ditakrifkan sebagai suatu struktur data yang dibina atas prinsip “LIFO”1. Tindanan digunakanuntuk menyimpan data secara sementara dan digunakan untuk pengendalian subrutin. Ia dijumpai dalamhampir semua sistem komputer moden.

Dengan prinsip LIFO, data terakhir ditambah adalah data pertama diambil. Analogi LIFO ialahseorang pekerja pejabat: seorang kerani hanya boleh memproses satu dokumen pada sesuatu masa, jadidokumen terakhir diletakkan di peti masuk adalah dokumen pertama diproses.

Tindanan yang dilaksanakan oleh pemproses 68000 adalah suatu turutan data yang mempunyai sifat-sifat tambahan berikut:

• Daftar khas bagi pengendalian tindanan ialah A7, yang boleh juga dirujuk dengan nama SP.

• SP sentiasa menunjuk ke unsur terakhir disimpan.

• Tindanan mengembang ke arah alamat 0. Ada pemproses lain yang tindanannya mengembang daiatas bertentangan.

• Saiz unsur dalam tindanan ialah 16 atau 32 bit.

Dua operasi yang boleh dilakukan terhadap tindanan adalah:

1last-in first-out

115

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 120: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

116 Bab 8. Tindanan dan Subrutin

Rajah 8.1: Operasi yang dibenarkan untuk tindanan.

• Operasi push, yang mana satu item data diletakkan ke atas tindanan, dan alamat dalam SPdisusutkan bergantung saiz data. Mod alamat prasusut digunakan untuk operasi push, contohnya:

MOVE.s <ea>,-(SP)

• Operasi pop atau pull, yang mana satu item data diambil dari atas tindanan, dan alamat dalam SPditokok bergantung saiz data. Mod alamat pascatokok digunakan untuk operasi pop, contohnya:

MOVE.s (SP)+,<ea>

Ada pemproses lain yang mempunyai suruhan-suruhan PUSH dan POP, tetapi suruhan paling hampirdalam 68000 ialah PEA (push effective address). Selain PEA, suruhan lain yang diadakan khusus untuktindanan ialah MOVEM (move multiple) yang diliputi dalam Seksyen 8.4.

Saiz data yang sah digunakan dengan tindanan sistem2 yang dikendalikan oleh daftar SP ialah 2 atau4 byte sahaja. Disebabkan penuding tindanan SP dikhaskan untuk operasi-operasi melibatkan subrutin,ia tidak boleh digunakan untuk tujuan menuding ke tatasusunan biasa seperti daftar A0-A6.

Selain tindanan sistem, pengatucara boleh membina tindanan pengguna3 menggunakan daftar A0-A6 yang membenarkan saiz data 1, 2, atau 4 byte, tetapi suruhan-suruhan khusus seperti yang dinyatakantidak boleh digunakan.

8.2 Prinsip Asas Subrutin

Subrutin ditakrifkan sebagai suatu keratan aturcara yang:

• melakukan satu tugas yang jelas

• diaktifkan (dipanggil) oleh satu aturcara lain

• mengembalikan kawalan ke aturcara pemanggil setelah selesai

Terdapat beberapa sebab subrutin digunakan:

• menggunakan semula kod yang berguna (dan siap diuji!) tanpa perlu menaipnya semula

• membahagi-bahagikan tugas antara ramai pengaturcara

• menggunakan pustaka rutin yang berguna

2system stack3user stack

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 121: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.2. Prinsip Asas Subrutin 117

Untuk memanggil subrutin, laksanakan suruhan JSR <label>. Ini menyebabkan aturcara melompatke alamat <label>. Selepas turutan suruhan dalam subrutin ditamatkan, subrutin kembali ke aturcarapemanggil pada suruhan yang menuruti panggilan subrutin. Setelah subrutin tamat, suruhan RTS dihujung subrutin mengembalikan kawalan ke aturcara asal (Lihat Rajah 8.3).

Mekanisme Suruhan JSR dan RTS

Suruhan JSR (jump to subroutine) yang digunakan untuk memanggil subrutin mempunyai sintaks:

JSR <ea>

Apabila dilaksanakan, operasi berikut dilakukan

1) SP – 4→ SP Tunjuk ke atas tindanan baru2) PC→ (SP) Simpan PC (alamat suruhan berikut)3) Alamat subrutin→ PC Lompat ke subrutin

Ringkasnya, JSR menyimpan kandungan PC di atas tindanan sistem kemudian melompat kesubrutin. Nilai SP dikurangkan 4 kerana nilai PC yang disimpan bersaiz 32 bit. Alamat berkesan subrutinlazimnya didapati melalui mod mutlak tetapi pelbagai mod alamat juga dibenarkan. Kepelbagaian mod-mod alamat membolehkan pembinaan struktur kawalan yang canggih.

Rajah 8.2: Operasi dan pengembangan tindanan.

Rajah 8.3: Memanggil subrutin.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 122: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

118 Bab 8. Tindanan dan Subrutin

Selain suruhan JSR, suruhan BSR juga boleh memanggil subrutin. Dengan suruhan BSR, hanyamod relatif PC dibolehkan. Oleh itu, langkah 3 di atas yang digantikan dengan ungkapan PC + ofset→PC. Nilai PC yang disimpan dalam tindanan masih 4 byte.

Suruhan yang mengembalikan kawalan ke aturcara utama ialah RTS (return from subroutine).Suruhan RTS menggantikan PC dengan kata panjang yang diambil di atas tindanan. Ia mempunyaiformat:

RTS

Langkah-langkah berikut berlaku semasa perlaksanaan RTS:

1) (SP)→ PC Isi PC dengan nilai teratas tindanan2) SP + 4→ SP Tokok nilai SP

Kelebihan penggunaan kombinasi suruhan JSR dan RTS menjadi jelas apabila subrutin dipanggillebih daripada sekali. Aturcara berikut memanggil subrutin SUBR dua kali. Setiap kali SUBR dipanggil,alamat suruhan yang menuruti JSR disimpan di tindanan. Bagi panggilan pertama, alamat X disimpan.Bagi panggilan kedua, alamat Y pula disimpan. (Label-label ini tidak diperlukan untuk perlaksanaansubrutin dan fungsinya hanya untuk menerangkan operasi aturcara ini.) Suruhan RTS di hujung subrutinmemungut alamat yang betul dari tindanan setiap kali. Rujuk Rajah 8.4.

UTAMA ... ; mula aturcara utama...JSR SUBR ; panggilan pertama

X ......JSR SUBR ; panggilan kedua

Y ......

SUBR CLR.L (A0)+SUBQ.B #1,D0BNE SUBRRTS

Rajah 8.5 menunjukkan perlaksanaan subrutin SUBR yang bermula di alamat $1030. Suruhan JSRterletak di alamat $1010 dan panjang suruhan JSR ialah 4 byte. Ini bermakna nilai PC yang disimpan ditindanan semasa perlaksanaan subrutin ialah $1014.

Rajah 8.4: Memanggil subrutin berulangkali.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 123: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.3. Subrutin Bersarang 119

Rajah 8.5: Operasi JSR dan RTS.

8.3 Subrutin Bersarang

Jika aturcara utama memanggil subrutin dan subrutin tidak memanggil subrutin lain, penggunaandaftarpun sudah memadai untuk menyimpan alamat kembali. Bagaimanapun, secara purata, subrutinboleh memanggil subrutin lain kira-kira lima tahap dalam sistem yang kompleks. Subrutin yangmemanggil subrutin lain dikatakan subrutin bersarang4.

Aturcara berikut menunjukkan rangka suatu aturcara dengan subrutin dua tahap. Aturcara utamamemanggil subrutin SUB1. Selepas itu, subrutin SUB1 memanggil SUB2.

UTAMA ... ;MULA ATURCARA UTAMA....JSR SUB1

X ......

SUB1 ... ;MULA SUBRUTIN 1.JSR SUB2......RTS

4nested subroutine

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 124: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

120 Bab 8. Tindanan dan Subrutin

SUB2 ... ;MULA SUBRUTIN 2.RTS

Rajah 8.6: Aliran kawalan semasa melaksanakan subrutin bersarang.

Rajah 8.7: Kesan subrutin bersarang kepada tindanan.

Rajah 8.6 menunjukkan aliran kawalan aturcara di atas. Rajah 8.7 menunjukkan keadaan tindanansistem sepanjang perlaksanaan aturcara. Apabila SUB1 dilaksanakan, tindanan menyimpan alamatX. Alamat ini ialah tempat aturcara utama disambung semula apabila SUB1 tamat. Semasa dalamSUB2, alamat Y pula ditindan di atas alamat X. Alamat ini pula ialah tempat kawalan diteruskan setelahSUB2 tamat. Suruhan RTS sentiasa memungut 4 byte teratas dalam tindanan jadi RTS di hujung SUB2memungut alamat Y, bukan alamat X.

8.4 Melindungi Isi Daftar

Aturcara utama dan subrutin memerlukan daftar untuk kegunaan masing-masing. Jika terdapat banyakdaftar, ini tidak menjadi masalah kerana kita boleh menetapkan daftar mana yang digunakan pemanggildan yang mana pula untuk kegunaan subrutin. Oleh sebab jumlah daftar adalah terhad, daftar yangsama diperlukan oleh kedua-dua pemanggil dan subrutin. Walaupun ini kelihatan seperti satu masalahbesar, penyelesaiannya agak mudah kerana kebanyakan daftar yang digunakan oleh subrutin hanya sah

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 125: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.4. Melindungi Isi Daftar 121

sepanjang perlaksanaan subrutin. Nilai dalam daftar-daftar ini bersifat sementara dan boleh dihapuskanapabila subrutin tamat.

Untuk memastikan nilai-nilai dalam daftar tidak berubah dari pandangan pemanggil, mana-manadaftar yang digunakan dalam subrutin perlu disimpan di tempat lain. Kesemua daftar dikembalikankepada nilai asal dengan menyalin semula maklumat dari tempat ini sebelum subrutin pulang. Sebarangtempat dalam ingatan boleh digunakan. Untuk menyokong subrutin bersarang, tindanan sistem adalahtempat yang paling sesuai.

Suruhan berikut menyimpan daftar D0, D1, D2 dan A0 secara sementara di awal subrutin danmengisikan semula di akhir subrutin.

MOVE.L D0,-(SP)MOVE.L D1,-(SP)MOVE.L D2,-(SP)MOVE.L A0,-(SP)... isi subrutin ...MOVE.L (SP)+,A0MOVE.L (SP)+,D2MOVE.L (SP)+,D1MOVE.L (SP)+,D0

EXIT RTS

Turutan daftar disimpan dan diambil semula perlu disongsangkan untuk mengekalkan nilai yangbetul. (Rujuk Rajah 8.8.)

Suruhan MOVEM dan RTR

Pemproses 68000 menyediakan suruhan MOVEM (move multiple registers) untuk melicinkan lagioperasi menyimpan dan mengambil semula daftar di awal dan akhir subrutin. Format suruhan ini ialah:

MOVEM <senarai daftar>,-(SP)MOVEM (SP)+,<senarai daftar>

Saiz data yang dibenarkan ialah 16 dan 32 bit. Ungkapan <senarai daftar> menyenaraikan daftar-daftar yang disimpan dan dipulihara.

Suruhan berikut menyimpan daftar D0 hingga D2 dan A5 ke tindanan.

Rajah 8.8: Menumpang tindanan untuk menyimpan data.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 126: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

122 Bab 8. Tindanan dan Subrutin

(a) Menyimpan daftar.

(b) Memulihara daftar.

Rajah 8.9: Menjaga isi daftar semasa dalam subrutin dengan MOVEM.

MOVEM.L D0-D2/A5,-(SP)

Daftar-daftar tersebut boleh diambil semula oleh:

MOVEM.L (SP)+,D0-D2/A5

Kebanyakan penghimpun membenarkan sintaks khas untuk suruhan ini. Nama-nama daftar bolehdipisahkan dengan aksara ’/’. Bagi daftar berturutan, cuma berikan nama daftar awal dan akhir yangdicantumkan dengan aksara ’–’. Turutan nama-nama daftar tidak penting kerana daftar-daftar disimpandan diambil semula dengan turutan yang ditetapkan pada tahap perkakasan. Pengaturcara hanya perlumemastikan daftar yang dinyatakan untuk menyimpan dan mengambil semula adalah daftar yang sama.(Rujuk Rajah 8.9.)

Terdapat juga situasi apabila nilai daftar CCR perlu dikekalkan. Dalam kes ini, daftar CCR disimpandi tindanan di awal subrutin. Setelah tamat subrutin, daftar ini boleh dipulihara dengan suruhan RTR(return and restore condition codes). Ini menjadikan aturcara lebih cekap kerana menjimatkan masadan tidak memerlukan sebarang suruhan tambahan. Contoh berikut menunjukkan rangka subrutin yangmenggunakan suruhan RTR.

SUBR MOVE SR,-(SP)MOVEM A0-A6/D1-D3,-(SP)... isi subrutin ...MOVEM (SP)+,A0-A6/D1-D3RTR

8.5 Pengiriman Parameter

Subrutin yang ditulis dengan sempurna boleh dipanggil berulangkali dan jika benar-benar serbaguna,boleh digunakan semula dalam aturcara yang berlainan. Untuk membolehkan subrutin yang samadigunakan dalam keadaan berlainan, pemanggil perlu memberikan parameter yang berbeza setiap kali.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 127: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.5. Pengiriman Parameter 123

Misalnya, jika kita perlu mengira faktorial 4! dan 5! dalam aturcara yang sama, kita boleh menulis duarutin yang khusus bagi kedua-dua nilai. Yang lebih baik lagi ialah jika menulis subrutin yang mengirafaktorial n!. Untuk mengira faktorial 4!, subrutin dipanggil dengan memberikan parameter 4 dan untukmengira 5!, parameter diubah kepada 5.

Beberapa kaedah boleh digunakan untuk menghantar parameter daripada aturcara pemanggil kesubrutin. Dalam contoh-contoh di bawah, aturcara pemanggil memanggil suatu subrutin yang menukarnilai ASCII perpuluhan kepada nilai setara dalam perduaan.

Pengiriman Parameter Melalui Daftar

Kaedah pengiriman parameter termudah ialah melalui daftar. Parameter diisi ke dalam daftar sebelumpanggilan. Kaedah ini adalah yang terpantas tetapi praktikal hanya bagi parameter yang sedikit.

** PARPASS1.X68*

ORG $1000

START MOVE.B MSB,D0MOVE.B LSB,D1JSR ASC2BINMOVE D2,NOMBOR

MOVE.B #9,D0TRAP #15

** SUBRUTIN UNTUK MENUKAR D0/D1 KE PERDUAAN* INPUT: D0.B = MSB DLM ASCII* D1.B = LSB DLM ASCII* OUTPUT:D2=D0*10+D1* ATAU D2=-1 JIKA RALAT*ASC2BIN SUB.B #’0’,D0

CMP.B #9,D0BHI RALATSUB.B #’0’,D1CMP.B #9,D1BHI RALATCLR.W D2MOVE.B D0,D2MULU #10,D2ADD.B D1,D2BRA SIAP

RALAT MOVEQ #-1,D2SIAP RTS** KAWASAN DATA*MSB DS.B 1LSB DS.B 1NOMBOR DS.W 1

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 128: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

124 Bab 8. Tindanan dan Subrutin

END START

Jika data hanya dihantar melebihi muatan daftar, seperti suatu tatasusunan, gunakan daftar alamatuntuk mengirimkan alamat data.

Pengiriman Parameter Dalam Barisan

Kaedah pengiriman parameter dalam barisan5 menyelitkan parameter selepas suruhan JSR di celah-celahsuruhan bahasa himpunan. Subrutin mencapai parameter secara tidak langsung melalui SP. Kaedah inikelihatan kemas kerana data terletak berdekatan suruhan JSR. Masalah dengan kaedah ini percampuranantara kod dan data dalam kawasan yang sepatutnya mengandungi hanya kod. Kesilapan dalam jumlahdan jenis parameter boleh mengakibatkan aturcara gagal kembali ke titik sambungan yang sepatutnya.

** PARPASS3.X68*

JSR ASC2BIN ; panggilan subrutinDS.L MSB ; parameter 1DS.L LSB ; parameter 2MOVE D2,NOMBOR ; sambung di sini sekembali dari subrutin

MOVE.B #9,D0TRAP #15

** SUBRUTIN UNTUK MENUKAR 2 LONGWORD YANG MENURUTI JSR KE PERDUAAN* INPUT: ((SP)).L = ALAMAT (MSB DLM ASCII)* (4(SP)).L = ALAMAT (LSB DLM ASCII)* OUTPUT:D2=D0*10+D1* ATAU D2=-1 JIKA RALAT*ASC2BIN MOVE.L (SP),A0

MOVE (A0),A0MOVE (A0),D0MOVE 4(A0),A0MOVE (A0),D1SUB.B #’0’,D0CMP.B #9,D0BHI RALATSUB.B #’0’,D1CMP.B #9,D1BHI RALATCLR.W D2MOVE.B D0,D2MULU #10,D2ADD.B D1,D2BRA SIAP

RALAT MOVEQ #-1,D2SIAP ADDA.L #2,A0 ;UBAHSUAI ALAMAT BALIK

MOVE.L A0,SPRTS

*

5inline parameter passing

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 129: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.5. Pengiriman Parameter 125

* KAWASAN DATA*MSB DS.B 1LSB DS.B 1NOMBOR DS.W 1

END START

Apabila mula-mula masuk ke subrutin, nilai teratas tindanan adalah alamat parameter, bukan alamatkembali. Nilai ini perlu ditambah 8 sebelum suruhan RTS dilaksanakan. Jika ini tidak dilakukan,pemproses akan cuba melaksanakan data dan sudah tentu menyebabkan sistem terkandas. Kaedah initidak disyorkan tetapi ditunjukkan kerana masih digunakan dalam beberapa sistem lama seperti SBCFlight68K.

Pengiriman Parameter Melalui Tindanan

Kaedah pengiriman parameter paling cekap ialah melalui tindanan dan merupakan teknik yangdigunakan dalam bahasa tahap tinggi. Untuk menggunakan subrutin, parameter diletakkan di atastindanan sebelum subrutin dipanggil. Kaedah ini membolehkan bahasa tahap tinggi memanggil subrutindalam bahasa himpunan untuk melaksanakan mana-mana operasi yang hanya mampu dilakukan padatahap rendah. Penggunaan tindanan juga membolehkan subrutin recursive dan reentrant dibina (akandiliputi beberapa tahun lagi). Hasil operasi biasanya dipulangkan melalui daftar data.

** PARPASS4.X68*

MOVE.B MSB,-(SP) ; SP disusut 2 byte setiap kaliMOVE.B LSB,-(SP)JSR ASC2BINADDA #4,SP ; betulkan SPMOVE D2,NOMBOR

MOVE.B #9,D0TRAP #15

** SUBRUTIN UNTUK MENUKAR 2 BYTE DI ATAS TINDANAN KE PERDUAAN* INPUT: 4(SP).B = MSB DLM ASCII* 6(SP).B = LSB DLM ASCII* OUTPUT:D2=D0*10+D1* ATAU D2=-1 JIKA RALAT*ASC2BIN MOVE.B 4(SP),D0

MOVE.B 6(SP),D1AND.W #$00FF,D0SUB.B #’0’,D0CMP.B #9,D0BHI RALATAND.W #$00FF,D0SUB.B #’0’,D1CMP.B #9,D1BHI RALATCLR.W D2

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 130: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

126 Bab 8. Tindanan dan Subrutin

MOVE.B D0,D2MULU #10,D2ADD.B D1,D2BRA SIAP

RALAT MOVEQ #-1,D2SIAP RTS** KAWASAN DATA*MSB DS.B 1LSB DS.B 1NOMBOR DS.W 1

END START

Di sini, data yang ingin dikirim ke subrutin adalah dua byte berasingan. Tindanan sistem berbezadengan tindanan yang dikendalikan oleh daftar A0 hingga A6 yang mana setiap byte menggunakan dualokasi. Dalam subrutin, setiap kata yang dipungut dari tindanan perlu ditapis untuk mengembalikannyake bentuk byte.

8.6 Penggunaan Subrutin Yang Berkesan

Berikut adalah beberapa perkara yang wajar diingati untuk menggunakan subrutin secara berkesan.

• Subrutin mesti dimulakan dari satu titik sahaja iaitu suruhan pertama dalam subrutin.

• Subrutin mesti ada hanya satu suruhan RTS, iaitu suruhan terakhir dalam subrutin.

• Tinggalkan subrutin menggunakan RTS, bukan dengan suruhan cabang atau lompat biasa.

• Jangan guna operasi push dan pop di tempat selain awal dan akhir subrutin.

• Pastikan daftar dipulihara ke nilai asal, kecuali D0, D1, A0, dan A1. Gunakan suruhan MOVEMuntuk meminjam daftar.

• Subrutin sepatutnya melakukan hanya satu tugas.

• Gunakan subrutin walaupun sesuatu tugas tidak dilakukan berulangkali. Penggunaan subrutinmembantu penulisan aturcara modular (rekabentuk atas-ke-bawah).

• Elakkan menulis dua subrutin yang hampir-hampir sama. Setiap tugas yang berlainan sedikitsahaja mempunyai beberapa nilai data yang membezakannya. Tulis satu subrutin sahaja danpanggil dengan memberi parameter yang berbeza setiap kali.

• Pastikan kekebalan subrutin sebelum dikongsi atau digabungkan dengan rutin-rutin lain. Ujidengan pelbagai kombinasi data untuk memastikan ia berfungsi seperti yang dijangka.

• Hadkan panjang subrutin kurang daripada 50 baris. Ini membolehkan keseluruhan subrutindimuatkan dalam sehelai kertas A4 apabila dicetak. Jika boleh, kurangkan lagi kepada 25 barissupaya boleh kelihatan dalam satu skrin.

• Sediakan dokumentasi yang cukup. Di awal setiap subrutin, letakkan kepala subrutin yangmengandungi maklumat seperti: nama subrutin, senarai pembolehubah input dan output, senaraipembolehubah dan label luaran yang dirujuk, dan senarai daftar yang diubah. Untuk subrutinyang mungkin digunakan semula, tambahkan nama pengaturcara, tarikh, dan nombor semakan.Ini membolehkan pembaca memahami fungsi subrutin tanpa membaca aliran suruhan denganterperinci.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 131: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.7. Kajian Kes Subrutin 127

8.7 Kajian Kes Subrutin

Algoritma-algoritma demonstrasi di bawah dipakej dalam bentuk subrutin supaya mudah digunakanuntuk aplikasi anda.

Mengira Pariti

Piawaian ASCII tertakrif hanya untuk 7 bit. Biasanya bit teratas diberikan nilai 0. Untuk komunikasidata, bit teratas boleh diset ke nilai pariti. Peranti penghantar mengira jumlah 1 dalam kod ASCIIkemudian mengeset (atau memadam) bit teratas supaya jumlah 1 menjadi genap (pariti genap) atauganjil (pariti ganjil). Jika terdapat ralat penghantaran, jumlah bit yang sepatutnya genap menjadi ganjildan peranti penerima boleh mengesan ralat ini.

Aturcara di bawah memberikan pariti genap kepada setiap aksara dalam rentetan.

** PARITY.X68*

ORG $1000

START LEA STRING,A0

LOOP TST.B (A0)BEQ DONEMOVE.B (A0),D0 ; sediakan data untuk pengiraanJSR PARITY ; kira paritiMOVE.B D0,(A0)+ ; simpan data baruMOVE.W #$1234,D0BRA LOOP

DONE MOVE.B #9,D0TRAP #15

*STRING DC.B ’Suatu rentetan percubaan’,0*PARITY MOVE.W D0,-(SP) ; simpan data asal

CLR.L D1 ; padamkan jumlah bit 1

MORE TST.B D0 ; jika D0.B = 0, tamatBEQ SKIPLSR.B #1,D0 ; anjak bit ke bendera CBCC MOREADDQ #1,D1 ; tokok jumlah jika C = 1BRA MORE

SKIP MOVE.W (SP)+,D0 ; ambil data asal

BTST #0,D1 ; semak sama ada ganjilBEQ EXITBSET #7,D0 ; jika ganjil, setkan bit 7 supaya genap

EXIT RTS

END START

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 132: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

128 Bab 8. Tindanan dan Subrutin

Encryption

Proses encryption membolehkan maklumat tidak boleh dibaca oleh sesiapa kecuali yang mempunyaikuncinya. Ia telah lama digunakan untuk perhubungan rahsia. Algoritma termudah digelar ROT13daripada perkataan “rotate by 13 places” atau putar 13 tempat. Untuk menyorokkan sebarang teks,gantikan huruf dengan rakannya yang terletak 13 kedudukan selepasnya. Contohnya, HELLO menjadiURYYB. Untuk menyongsangkan, gunakan teknik yang sama, jadi URYYB menjadi HELLO semula.ROT13 popular dalam Internet untuk permainan. Sesetengah huruf bahasa Inggeris menjadi perkataanlain apabila ditransformasi menggunakan ROT13. Contoh terpanjang ialah pasangan abjurer dengannowhere. Contoh-contoh lain ialah clerk↔ pyrex, envy↔ rail dan bar↔ one.

Aturcara di bawah mengambil input dari konsol, dan menukarkannya ke bentuk ROT13, atausebaliknya. Untuk meringkaskan subrutin, hanya huruf-huruf besar diterima. Aksara-aksara lain tidakterkesan.

** RAHSIA.X68*

ORG $1000

START LEA BUFFER,A1MOVE.B #2,D0TRAP #15 ; baca satu rentetan

TST.B BUFFERBEQ TAMAT ; masukkan Enter sendirian untuk menamatkan

JSR ROT13

LEA BUFFER,A1MOVE.B #13,D0TRAP #15 ; papar rentetan yang diproses

BRA START

TAMAT MOVE.B #9,D0TRAP #15

*ROT13 MOVE.L A1,-(SP) ; simpan A1

LEA LUT,A0CLR.L D1

PROSES MOVE.B (A1)+,D1BEQ EXIT ; keluar bila jumpa NOL

CMP.B #’A’,D1BLT PROSESCMP.B #’Z’,D1

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 133: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

8.7. Kajian Kes Subrutin 129

BGT PROSESSUB.B #’A’,D1 ; pastikan hanya ’A’-’Z’ diubah

MOVE.B (A0,D1),-1(A1) ; tukar ke kod ROT13BRA PROSES

EXIT MOVE.L (SP)+,A1RTS

BUFFER DS.B 80LUT DC.B ’NOPQRSTUVWXYZABCDEFGHIJKLM’

END START

Algoritma ROT13 tidak sesuai untuk menyimpan data yang benar-benar rahsia kerana agak mudahuntuk mendapat data asal. Bidang encryption merupakan bidang yang luas dan mendalam, dan terdapatpelbagai algoritma encryption berasaskan matematik tahap tinggi bertujuan menjadikan proses mencuridata asal amat sukar atau mustahil.

Latihan

1. Tulis subrutin yang menukarkan nilai Celsius ke Fahrenheit.

2. Tulis subrutin yang menukarkan nilai Fahrenheit ke Celsius.

3. Tulis subrutin penukaran dari perduaan ke ASCII perenambelasan yang menyelesaikan digit-digitbawah dahulu.

4. Tulis subrutin yang menukarkan ASCII perenambelasan ke perduaan.

5. Tulis subrutin yang menukarkan ASCII perpuluhan ke perduaan.

6. Tulis subrutin yang mengira aksara ruang putih dalam suatu rentetan diakhiri NOL.

7. Tulis subrutin yang menukar kesemua huruf kecil dalam suatu rentetan ke huruf besar.

8. Tulis subrutin yang melaksanakan fungsi C berikut. Kirimkan parameter melalui tindanan.

int sumsquare(int *array, int count)

int i, sum;

for (i = sum = 0; i < count; i++)sum += array[i]*array[i];

return sum;

9. Ubahsuai subrutin ROT13 yang diberi supaya boleh memproses huruf besar dan huruf kecil.

10. Algoritma “XOR cipher” adalah satu algoritma encryption yang beroperasi dengan prinsip:

A⊕0 = A,A⊕A = 0,(B⊕A)⊕A = B⊕0 = B

Suatu renteten boleh dirahsiakan dengan mengenakan suruhan EOR ke setiap aksara menggu-nakan kunci yang diberi. Contohnya, rentetan “68k” boleh ditukar dengan kunci 11110011 seperti

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 134: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

130 Bab 8. Tindanan dan Subrutin

berikut:

00110110 00111000 01101011⊕ 11110011 11110011 11110011= 11000101 11001011 10011000

Dan untuk menyongsangkan:

11000101 11001011 10011000⊕ 11110011 11110011 11110011= 00110110 00111000 01101011

Tulis subrutin untuk melakukan operasi encryption di atas. Tulis aturcara yang mesra penggunauntuk memasukkan data.

11. Tulis subrutin untuk mengira checksum yang terdapat di hujung setiap S-record.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 135: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 9

Ciri Perkakasan MC68000

Objektif

• Spesifikasi am 68000

• Nama dan fungsi isyarat kawalan 68000

• Pemasaan isyarat

9.1 Pin dan Isyarat 68000

Untuk mengantaramuka dengan bas sistem, kita perlu memahami talian-talian isyarat yang terdapatpada pemproses 68000. Pemproses MC68000 terdapat dalam tiga pakej: DIP, PGA dan PLCC. PakejDIP1 dibuat daripada bahan plastik atau seramik. Pakej DIP plastik merupakan pakej termurah danpopular di kalangan mereka yang membina sistem 68000 sendiri. Pakej DIP seramik tahan suhu yangmelampau dan sesuai untuk membina sistem yang lasak. Agihan pin pakej DIP ditunjukkan dalamlihat Rajah 9.1. Pakej PGA2 merupakan pakej yang kecil sedikit berbanding DIP kerana pin-pinnyamembentuk tatasusunan dua dimensi. Ia lebih mahal berbanding DIP dan biasanya memerlukan soket.Pakej PLCC3 merupakan pakej termoden. Ia sangat kecil dan tidak mempunyai kaki yang panjangseperti DIP atau PGA. Ia sesuai digunakan dalam PCB padat berbilang lapisan.

Pin-pin 68000 boleh dibahagikan menurut lapan kategori seperti yang ditunjukkan di Rajah 9.2.

• Kuasa dan jam

• Bas alamat dan bas data

• Kawalan bas tak segerak

• Kawalan sistem

• Kawalan sampukan

• Status pemproses

• Kawalan periferal 6800

• Kawalan DMA

1dual inline package2pin grid array3plastic leadless chip carrier

131

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 136: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

132 Bab 9. Ciri Perkakasan MC68000

Rajah 9.1: Rajah pin bagi 68000 dalam pakej DIP.

Rajah 9.2: Agihan pin 68000 menurut fungsi utama.

Pemproses disediakan dengan dua pin untuk Vcc dan dua pin untuk bumi. Bekalan kuasa diagihkanuntuk mengurangkan hingar pada frekuensi tinggi. Pemproses memerlukan bekalan 5 V ± 5%. Pada 8MHz, 68000 menggunakan sebanyak 1.5 W dengan arus lebih kurang 300mA. Kesemua talian isyaratpada 68000 boleh diantaramuka dengan peranti TTL.

Input CLK menerima isyarat pemasaan daripada litar jam. Pemproses 68000 beroperasi pada 8, 10dan 12.5 MHz bergantung versi. Isyarat-isyarat mesti serasi TTL dengan kitar tugas 50%. Input jammestilah diberikan isyarat dengan frekuensi sekurang-kurangnya 50% frekuensi maksimum.

Bas alamat (A1-A23) mengandungi isyarat-isyarat sehala. Ia digunakan untuk mengeluarkan alamat

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 137: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.2. Isyarat Kawalan Bas Tak Segerak 133

Jadual 9.1: Fungsi dan jenis logik bagi pin 68000.

Nama Isyarat Mnemonik Input/Output Keadaan Aktif Keadaan TigaBas Alamat A1-A23 Output Tinggi YaBas Data D0-D15 Input/Output Tinggi YaStrob Alamat AS* Output Rendah YaBaca/Tulis R/W* Output Tinggi/Rendah1 YaStrob Data UDS*, LDS* Output Rendah YaAkuan Pemindahan Data DTACK* Input Rendah TidakPermohonan Bas BR* Input Rendah TidakIzin Bas BG* Output Rendah TidakAkuan Izin Bas BGACK* Input Rendah TidakTahap Keutamaan Sampukan IPL0, IPL1, IPL2 Input Rendah TidakRalat Bas BERR* Input Rendah TidakReset RESET* Input/Output Rendah Tidak2

Henti HALT* Input/Output Rendah Tidak2

Enable E Output Tinggi TidakAlamat Ingatan Sah VMA* Output Rendah YaAlamat Periferal Sah VPA* Input Rendah TidakOutput Kod Fungsi FC0, FC1, FC2 Output Tinggi YaJam CLK Input Tinggi TidakInput Kuasa VCC Input - -Bumi GND Input - -1Tinggi – baca, Rendah – tulis2Logik pemungut terbuka

Rajah 9.3: Kaitan antara alamat logikal dengan alamat fizikal.

ingatan. Pada pandangan pengaturcara, terdapat 32 talian alamat, tetapi hanya 23 bit dikeluarkan olehpin 68000. Bit alamat 24-31 dibuang begitu sahaja kerana 68000 tidak mempunyai cukup pin. A0tidak dikeluarkan secara langsung tetapi melalui UDS* dan LDS*, bergantung saiz data di bas data.Rajah 9.3 menunjukkan perbandingan alamat logikal (alamat yang digunakan dalam aturcara) denganalamat fizikal (pin 68000).

Bas data (D0-D15) dwihala digunakan untuk pemindahan data dari atau ke ingatan. Isyarat D0-D7dikenali sebagai bas data rendah dan D8-D15 dikenalis sebagai bas data tinggi.

9.2 Isyarat Kawalan Bas Tak Segerak

Bas 68000 dikategorikan sebagai bas tak segerak4 kerana pemasaan ingatan atau peranti periferalmenentukan masa pemindahan data bukan pemasaan pemproses. Ini bermakna apabila suatu kitarbas dimulakan, peranti luar mesti menghantar suatu isyarat untuk menamatkannya. Bas tak segerakmembolehkan peranti perlahan diantaramuka dengan pemproses.

Kelompok isyarat kawalan bas tak segerak mengandungi isyarat yang diperlukan oleh pemprosesuntuk memindahkan data dengan peranti tak segerak.

AS (address strobe) — Output ini menandakan terdapatnya alamat sah di bas alamat.

4asynchronous bus

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 138: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

134 Bab 9. Ciri Perkakasan MC68000

Rajah 9.4: Penjanaan DTACK*.

R/W* (read/write) — Output ini melaporkan kitar bas semasa sama ada ia kitar baca atau tulis. R/W*tinggi menandakan kitar baca dan R/W* rendah menandakan kitar tulis.

UDS (upper data strobe), LDS* (lower data strobe) — Kedua-dua output ini mengawal pergerakandata di bas data sama ada di bas data atas (D8-D15), bawah (D0-D7) atau kedua-duanya.

DTACK* (data transfer acknowledge) — Input ini memberitahu pemproses bahawa pemindahan datatelah ditamatkan.

Pemindahan data masuk atau keluar pemproses berlaku apabila terdapat alamat yang sah di basalamat. Ini ditandakan dengan AS* rendah. Ketika isyarat-isyarat di bas alamat sedang berubah, basdianggap tidak sah dan AS* bernilai tinggi.

UDS* dan LDS* menentukan di mana pergerakan data berlaku. UDS* (strob data atas) menandakanpemindahan data berlaku di bas data atas (D8-D15). LDS* (strob data bawah) menandakan pemindahandata berlaku di bas data bawah (D0-D7). Untuk memindahkan hanya satu byte, salah satu daripadaUDS* atau LDS* dijadikan rendah. Untuk memindahkan satu kata, kedua-dua UDS* dan LDS* mestirendah.

Isyarat akuan pemindahan data, DTACK*, digunakan oleh peranti luar untuk menamatkan kitarpemindahan data. Apabila dijadikan rendah oleh perkakasan luar, pemproses menganggap kitar bastelah tamat.

Dalam kitar baca, pemproses meletakkan alamat yang ingin dibaca ke bas alamat. Seterusnya, isyaratAS*, R/W*, UDS* dan LDS* diaktifkan. Pemproses kemudian menunggu data dari peranti luar. Setelahdata diletakkan di bas data, peranti luar mengaktifkan DTACK* bagi menamatkan kitar baca.

Dalam kitar tulis, pemproses meletakkan alamat tempat data akan disimpan ke bas alamat dan datayang akan disimpan ke bas data. Seterusnya, isyarat AS*, R/W*, UDS* dan LDS* diaktifkan. Setelahperanti luar menyimpan data, ia mengaktifkan DTACK* bagi menamatkan kitar tulis.

Butiran terperinci kitar bas dan kitar tulis diliputi dalam Seksyen 9.7.

9.3 Isyarat Kawalan Sistem

Input-input dalam kelompok ini digunakan untuk memulakan semula atau menghentikan pemproses danuntuk memberitahu pemproses terdapatnya ralat dalam kitar bas semasa.

RESET* — Isyarat dwihala ini digunakan untuk memulakan semula (RESET*) pemproses (sebagaiinput) dan untuk meRESET* peranti luar sahaja (sebagai output)

HALT* — Isyarat dwihala ini digunakan sebagai input untuk menghentikan pemproses dan berfungsisebagai output untuk memberitahu peranti luar bahawa pemproses telah terhenti sama adadisebabkan oleh kerosakan atau melalui suruhan STOP.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 139: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.4. Kawalan Sampukan dan Status Pemproses 135

BERR* (bus error) — Input ini memberitahu pemproses adanya masalah dengan kitar bas yang sedangdilaksanakan.

Kedua-dua isyarat RESET* dan HALT* adalah dwihala. Ini bermakna ada masanya salah satu ataukedua-duanya berfungsi sebagai input dan ada masanya berfungsi sebagai output.

Talian HALT* boleh diaktifkan pada bila-bila masa oleh peranti luar. Ini menyebabkan pemprosesberhenti selepas menamatkan kitar bas semasa. Apabila terhenti, kesemua isyarat berkeadaan tigadiletakkan dalam keadaan galangan tinggi dan semua isyarat kawalan dilumpuhkan. Perlaksanaandisambung apabila HALT* dikembalikan ke logik tinggi. Jika suatu kejadian dalaman, sepertiperlaksanaan suruhan STOP, menyebabkan pemproses dihentikan, 68000 akan mengeluarkan nilai logikrendah dan berhenti. Litar yang mengawal talian HALT* dan RESET* perlu direka dengan cermatsupaya litar ini masih beroperasi dalam kedua-dua arah isyarat (input dan output).

Talian RESET*, bersama dengan HALT*, mesti diberikan logik rendah sekurang-kurangnya 100ms selepas bekalan kuasa diberikan. Ini memastikan VCC telah stabil pada +5 V. Dengan input ini,pemproses mengisikan SSP dengan kata panjang di alamat $000000 dan PC dengan kata panjang dialamat $000004. Kesemua daftar lain tidak terjejas kecuali topeng sampukan yang diset kepada nilai7. RESET* dan HALT* boleh digunakan lagi dalam perlaksanaan aturcara biasa untuk meletakkanpemproses ke keadaan asal. Ini dibuat dengan mengaktifkan kedua- duanya selama tidak kurang 10kitar jam.

RESET* menjadi output selama 124 kitar semasa melaksanakan suruhan RESET*; ini tidak mereset68000 sebaliknya mereset peranti yg disambungkan kpd pemproses.

Isyarat BERR* boleh diaktifkan oleh litar luar untuk memberitahu pemproses terdapatnya ralatbas, iaitu suatu masalah dengan kitar bas semasa. Ini boleh berlaku misalnya jika pemproses cubamencapai sistem ingatan yang rosak dan tidak mengembalikan isyarat DTACK*. Selagi DTACK* tinggi,pemproses akan menunggu selama-lamanya. Suatu litar watchdog timer boleh digunakan untuk menjanaBERR* jika DTACK* tidak muncul selepas beberapa denyut jam.

Jika BERR* diterima, pemproses melakukan pemproses dalaman dipanggil pemprosesan keke-cualian ralat bas5. Sistem komputer dengan sistem pengoperasian boleh cuba mengesan punca ralatdan memberi maklum balas kepada pengguna. Dalam sistem mudah tanpa sistem pengoperasian, adalahsukar untuk pulih daripada ralat bas.

Jika BERR* diaktifkan tanpa HALT* semasa pemproses sedang memproses suatu ralat alamat, suaturalat bas lain, atau suatu kekecualian RESET*, pemproses akan berhenti dengan sendirinya.

Jika peranti luar mengaktifkan BERR* dan HALT* serentak, pemproses akan mencuba kitar bassebelumnya sekali lagi kecuali jika kitar tersebut dimulakan oleh suruhan TAS (test and set).

9.4 Kawalan Sampukan dan Status Pemproses

Input sampukan membolehkan pemproses dihentikan sementara daripada melaksanakan aturcara semasauntuk melakukan operasi yang lebih penting. Input IPL0, IPL1 dan IPL2 digunakan oleh perkakasan luaruntuk memohon sampukan daripada pemproses. Tahap 7 adalah tahap tertinggi. Tahap 0 menandakantiada sampukan dipohon. Kesemua isyarat ini adalah aktif rendah (logik negatif) jadi nilai logiktinggi (H) mewakili 0, dan logik rendah (L) mewakili 1. Jadual 9.2 menunjukkan tafsiran input-inputsampukan.

Output FC0, FC1 dan FC2 melaporkan status dalaman pemproses dalam bentuk kod. Jadual 9.3menunjukkan bagaimana output-output ini ditafsir. Ia menunjukkan pembahagian keadaan pemprosesankepada data pengguna, aturcara pengguna, data penyelia, aturcara penyelia dan akuan sampukan.Output-output ini boleh digunakan dalam litar penyahkodan alamat untuk mengehadkan capaian ingatan.Ini boleh digunakan bagi menghalang aturcara pengguna mengganggu ruang ingatan penyelia.

Dalam sistem kecil, nilai-nilai kod fungsi ini tidak digunakan kecuali bagi mengesan keadaan akuansampukan. Keadaan ini berlaku apabila ketiga- tiga output tinggi. Suatu cara yang mudah untuk

5bus error exception processing

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 140: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

136 Bab 9. Ciri Perkakasan MC68000

R

ajah9.5:

Rajah

masa

operasireset.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 141: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.4. Kawalan Sampukan dan Status Pemproses 137

Jadual 9.2: Makna input kawalan sampukan.

IPL2 IPL1 IPL0 Nilai setara TafsiranH H H 000 Tiada sampukanH H L 001 Sampukan Tahap 1H L H 010 Sampukan Tahap 2H L L 011 Sampukan Tahap 3L H H 100 Sampukan Tahap 4L H L 101 Sampukan Tahap 5L L H 110 Sampukan Tahap 6L L L 111 Sampukan Tahap 7

Jadual 9.3: Output status pemproses.

FC2 FC1 FC2 Jenis Kitar0 0 0 -0 0 1 Data pengguna0 1 0 Aturcara pengguna0 1 1 -1 0 0 -1 0 1 Data penyelia1 1 0 Aturcara penyelia1 1 1 Akuan sampukan

mengesan keadaan ini ialah dengan menggunakan suatu get AND tiga input yang outputnya tinggi hanyadalam kitar akuan sampukan. Nilai kod fungsi hanya sah apabila AS* aktif.

Rajah 9.6 menunjukkan bagaimana input IPL0-2 dan output FC0-2 disambungkan kepada pem-proses. Peranti 74LS148 ialah pengekod keutamaan, dan 74LS138 ialah penyahkod perduaan.

Semasa kitar akuan sampukan, FC0-2 kesemuanya bernilai tinggi, A1-A3 mengandungi tahap

Rajah 9.6: Litar bagi menerima sampukan dan mengeluarkan akuan sampukan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 142: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

138 Bab 9. Ciri Perkakasan MC68000

sampukan dan kesemua talian lain bernilai logik tinggi. Talian D0-D7 berada dalam keadaan inputuntuk membaca nombor vektor yang dibekalkan oleh peranti yang menyampuk.

9.5 Kawalan Periferal 6800

Peranti periferal yang direka khas untuk famili 68k seperti MC68681 DUART atau MC68230 PITmemberikan prestasi terbaik tetapi kosnya komponen ini agak tinggi. Sebaliknya, peranti 8 bit yangdireka untuk pemproses famili 6800 lebih murah dan kerapkali memadai untuk sesuatu aplikasi.Pemproses 68000 menyediakan tiga isyarat iaitu E, VPA* dan VMA* yang membolehkan penggunaanperanti lama ini dengan litar tambahan yang minimum. Secara ringkas, fungsi isyarat-isyarat ini ialah:

E (enable) — Isyarat ini ialah input penyegerakan bagi kesemua peranti periferal 6800.

VPA* (valid peripheral address) — Input ini memberitahu pemproses bahawa peranti yang sedangdicapai adalah peranti famili 6800 dan kesemua pemindahan data haruslah disegerakkan denganE.

VMA* (valid memory address) — Output ini memberitahu peranti famili 6800 bahawa terdapatalamat sah di bas alamat dan pemproses telah disegerakkan dengan isyarat E.

Apabila pemproses memulakan sesuatu kitar bas, ia menunggu ketibaan sama ada isyarat DTACK*atau VPA*. Jika DTACK* tiba, pemproses menganggap ianya sedang bertukar data secara tak segerakdengan ingatan atau peranti periferal MC68000. Jika VPA* tiba, pemproses menganggap peranti yangsedang cuba bertukar data dengannya daripada famili M6800.

Isyarat E mempunyai frekuensi satu per sepuluh frekuensi jam sistem. Contohnya, 68000 yangberoperasi pada 10 MHz akan menyediakan jam E selaju 1 MHz. Isyarat ini mempunyai kitar tugas40% iaitu tinggi selama 4 kitar jam sistem dan rendah selama 6 kitar.

9.6 Isyarat Kawalan DMA

Kelompok talian isyarat ini membolehkan peranti luar mengambilalih bas sistem untuk seketika. Perantiini selalunya pengawal capaian ingatan langsung (DMA6). Kawalan bas perlu diambilalih secara teraturuntuk mengelakkan kehilangan data atau kerosakan perkakasan. Tiga isyarat yang disediakan untukoperasi ini ialah BR*, BG* dan BGACK*.

BR* (bus request) — Input ini memberitahu pemproses bahawa suatu peranti lain ingin menjadi tuanbas.

BG* (bus grant) — Output ini memberitahu bakal tuan bas bahawa pemproses akan melepaskankawalan terhadap bas di hujung kitar bas semasa.

BGACK* (bus grant acknowledge) — Input ini memberitahu pemproses suatu peranti lain telahmenjadi tuan bas.isyarat!BGACK*

Rajah 9.7 menunjukkan perbezaan operasi input dengan DMA dan tanpa DMA bagi pemindahandata dari peranti input ke ingatan. Tanpa DMA, sebarang data dari peranti input perlu disimpan sebentardi CPU buat sementara sebelum dipindahkan ke ingatan. Ini membazirkan masa pemproses sedangkanCPU tidak mempunyai fungsi apa-apa kecuali mengawal operasi pemindahan data tersebut. Pembaziranini berlaku bagi setiap kata yang dipindahkan dan amat ketara jika jumlah data yang dipindahkan sangatbanyak, contohnya membaca satu fail yang besar dari cakera keras. Dengan DMA, peranti input tersebutmemindahkan data terus ke ingatan tanpa campurtangan CPU.

6direct memory access

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 143: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.6. Isyarat Kawalan DMA 139

(a) Tanpa DMA.

(b) Dengan DMA.

Rajah 9.7: Perbandingan pemindahan data tanpa dan dengan DMA.

Rajah 9.8: Rajah blok logik timbangtara bas.

Peranti DMA yang ingin menggunakan bas perlu memohon penggunaan bas dari pemproses melaluioperasi timbangtara bas7. Dalam operasi timbangtara bas, peranti DMA yang ingin mengambilalih bas(dikenali sebagai tuan bas8) mengaktifkan BR* iaitu isyarat permohonan bas . Pemproses mengaktifkanBG* atau isyarat izin bas menandakan ia melepaskan kawalan ke atas bas selepas tamat kitar bas semasa.Jika terdapat beberapa peranti DMA yang sama-sama memohon penggunaan bas, litar luaran diperlukanuntuk menentukan peranti mana yang berhak menjadi tuan bas. Apabila peranti DMA mendapat hakmengawal bas, ia mesti memberikan BGACK* iaitu isyarat akuanterima izin bas dan membatalkan BR*.Apabila operasi bas ditamatkan, tuan bas membatalkan BGACK* dan 68000 mengambilalih semulakawalan bas.

7bus arbitration8bus master

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 144: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

140 Bab 9. Ciri Perkakasan MC68000

9.7 Kitar Suruhan

Kitar suruhan9 adalah masa untuk 68000 melakuksan satu suruhan. Semasa kitar suruhan, pemprosesakan melakukan tidak kurang satu kitar bas10 – untuk mencapai kata operasi11. Jumlah kitar basberubah-ubah bergantung panjang suruhan dan operasi yang dilakukan. Suruhan yang lebih panjangakan memerlukan lebih banyak kitar bas. Selepas suruhan siap dibaca, ia dilaksanakan. Semasamelaksanakan suruhan, pemproses mungkin akan melakukan kitar bas tambahan.

Sebagai contoh, pertimbangkan aturcara berikut:

00001000 1 ORG $100000001000 303C 1234 2 START MOVE.W #$1234,D000001004 4640 3 NOT.W D000001006 13C0 00002000 4 MOVE.B D0,HASIL0000100C 60FE 5 BRA *00002000 6 ORG $200000002000 7 HASIL DS.B 100002002 8 END START

Terdapat 7 kata dalam aturcara ini. Aktiviti bas boleh diringkaskan menggunakan jadual analisis logikberikut:

Bil. kitar bas 1 2 3 4 5 6 7 8Bas alamat 001000 001002 001004 001006 001008 00100A 002000 00100CBas data 303C 1234 4640 13C0 0000 2000 DC?? 60FEJenis kitar bas Baca Baca Baca Baca Baca Baca Tulis BacaSaiz data Kata Kata Kata Kata Kata Kata Byte KataR/W* H H H H H H L HUDS* L L L L L L L LLDS* L L L L L L H L

Keterangan aktiviti bas adalah seperti berikut:

Kitar bas Suruhan Kandungan bas1–2 MOVE.W #$1234,D0 Dua kitar baca untuk memungut suruhan

Kitar 1 membaca kod operasi ($303C)Kitar 2 membaca nilai terdekat ($1234)

3 NOT.W D0 Satu kitar baca untuk memungut suruhan ($4640)Tiada kitar tambahan kerana NOT adalah operasi dalam daftar

4–7 MOVE.B D0,HASIL Tiga kitar untuk memungut suruhan ($13C0, $0000, $2000)Satu kitar untuk menulis byte ke ingatan ($DC)

8 dan BRA * Satu kitar untuk memungut suruhan ($60FE)seterusnya

Untuk memungut suruhan, pemproses melakukan kitar bas baca. Oleh itu R/W* sentiasa bernilaitinggi (H) semasa membaca suruhan. Saiz suruhan sentiasa dalam gandaan 2 byte, dan kedua-dua belahbas data digunakan maka kedua-dua UDS* dan LDS* diletakkan rendah (L). Jumlah kitar bas tidakboleh kurang jumlah kata dalam suruhan.

9instruction cycle10bus cycle11operation word

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 145: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.7. Kitar Suruhan 141

Suruhan MOVE.W D0,HASIL melakukan satu operasi tulis yang dilakukan selepas keseluruhansuruhan siap dibaca. Ini dikenalpasti melalui R/W* rendah (L). Ia juga melibatkan pemindahan datasatu byte di bas data atas, jadi hanya UDS* diletakkan rendah manakala LDS* adalah tinggi.

Rajah 9.9: Rajah masa untuk dua kitar suruhan.

Untuk memperincikan isyarat jam semasa perlaksanaan dua suruhan pertama, rujuk Rajah 9.9.Terdapat istilah kitar suruhan, kitar bas, kitar jam dan keadaan jam12 yang takrifannya diringkaskandi bawah:

Kitar suruhan Masa perlaksaan satu suruhanKitar bas Masa untuk satu operasi baca atau tulisKitar jam Masa untuk pinggir positif ke pinggir positif pada jam.Keadaan jam Setengah kitar jam

Dalam satu kitar bas, paling tinggi hanya satu kata dipindahkan. Kitar bas terdiri daripada turutanpelbagai isyarat tetapi segalanya mula bergerak apabila AS* menjadi rendah. Seterusnya 68000 akanmenunggu satu daripada tiga isyarat untuk menentukan jenis kitar bas: DTACK*, VPA* atau BERR*.

DTACK* — Menandakan kitar bas tak segerak. Ini merupakan majoriti kitar bas.

VPA* — Menandakan kitar bas segerak atau periferal 6800. Ini hanya berlaku apabila terdapat periferal6800 dalam sistem.

BERR* — Menandakan ralat bas yang berlaku bila 68000 mencapai alamat salah. Isyarat ini hanyaboleh muncul jika sistem mempunyai watchdog timer.

Pemproses 68000 akan menunggu sampai bila-bila jika salah satu isyarat tidak diterima. Rajah 9.10menunjukkan empat isyarat kawalan yang memula dan menamatkan kitar bas.

Panjang kitar bas ditentukan oleh bila isyarat DTACK* atau VPA* dikembalikan oleh peranti luartetapi ia tidak kurang daripada empat kitar jam. Peranti yang lambat boleh menyuruh 68000 menunggudengan melengahkan pengaktifan DTACK* atau VPA*.

Setiap kitar jam dibahagikan kepada dua keadaan jam, iaitu satu keadaan untuk paras jam tinggi dansatu lagi untuk paras jam rendah.

Pemindahan Data Tak Segerak

Pemindahan data yang paling banyak dilakukan oleh pemproses ialah dengan ingatan dalam bentuk kitarbas tak segerak. Bas data boleh berada dalam satu daripada tiga situasi:

12clock state

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 146: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

142 Bab 9. Ciri Perkakasan MC68000

Rajah 9.10: Tiga cara menamatkan kitar bas.

1. Pemproses membaca data dari ingatan

2. Pemproses menulis data ke ingatan

3. Pemproses tidak memerlukan bas

Dalam dua kes pertama terdapat pergerakan data di bas data yang mana arah jenis operasi diberitahudengan isyarat R/W*. Isyarat AS* rendah mengumumkan kepada ingatan bahawa pemproses sedangmelakukan sama ada operasi baca atau tulis. Ingatan akan melakukan operasi yang dikehendakikemudian mengaktifkan isyarat DTACK* untuk menamatkan kitar bas. Setelah pemproses menerimaDTACK*, ia boleh memulakan kitar bas seterusnya.

Kes ketiga berlaku apabila pemproses tidak perlu menggunakan bas, contohnya semasa ia sedangmelakukan suatu operasi dalaman ataupun semasa bas alamat sedang berubah dan tidak stabil. Padamasa ini, isyarat AS* adalah tinggi.

Rajah 9.11 menunjukkan carta aliran protokol baca tak segerak. Rajah 9.12 menunjukkan rajah masakitar bas baca. Kitar ini dibahagikan kepada 8 keadaan, S0 hingga S7.

Semasa S0, bas alamat diletakkan pada galangan tinggi, isyarat R/W* dinaikkan dan statuspemproses disahkan.

Rajah 9.11: Carta protokol bagi kitar bas baca.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 147: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.7. Kitar Suruhan 143

Rajah 9.12: Rajah masa kitar bas baca.

Rajah 9.13: Rajah masa kitar bas baca dengan keadaan tunggu.

Semasa S1, bas alamat berubah ke alamat yang diperlukan. R/W* telah stabil pada keadaan tinggi.Semasa S2, AS* menjadi aktif kerana alamat sudahpun stabil. Isyarat UDS* dan LDS* juga

aktif (bergantung kepada jenis operasi yang diperlukan, kata atau byte). Pada masa ini, litar ingatanmenyahkod alamat ingatan dan mengaktifkan cip ingatan.

Semasa S3 dan S4, tiada isyarat baru dikeluarkan. Masa ini diberi kepada litar ingatan untukmeletakkan data di bas data dan mengaktifkan DTACK*. Pemproses mengawas isyarat DTACK* dihujung S4. Jika DTACK* tidak aktif (bernilai tinggi), pemproses akan menambah keadaan tunggu, satukitar jam setiap kali, sebelum masuk ke S5.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 148: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

144 Bab 9. Ciri Perkakasan MC68000

Jika DTACK* aktif di hujung S4, pemproses akan terus memasuki S5 dan S6. Di hujung S6, datadi bas data diambil oleh pemproses dan AS*, UDS* dan LDS* dibatalkan. Seterusnya, litar ingatanperlu membuang data dari bas data selewat-lewatnya S1 dalam kitar berikutnya. Ini untuk memastikanpemproses beroperasi dengan betul.

Rajah 9.14: Carta protokol bagi kitar bas tulis.

Rajah 9.15: Rajah masa bagi kitar bas tulis.

Rajah 9.13 menunjukkan kitar bas baca dengan keadaan tunggu13. Beza dengan kitar sebelumnyaialah terdapat 4 keadaan tunggu yang memanjangkan kitar bas. Apabila DTACK* tinggi di hujung S4,pemproses menambah keadaan tunggu, Sw, dua keadaan setiap kali. Dalam rajah ini, DTACK* didapatitinggi selama dua kali ia disampel oleh pemproses sebelum ia menjadi rendah. Setelah ia menjadirendah, pemproses memasuki S5 dan membaca data di hujung S6.

13wait state

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 149: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.7. Kitar Suruhan 145

Rajah 9.14 menunjukkan rajah protokol untuk kitar bas tulis. Rajah 9.15 menunjukkan rajah masakitar bas tulis dan terdapat beberapa perbezaan berbanding kitar bas baca. Isyarat R/W* diberi nilairendah bermula keadaan S2 menandakan operasi tulis. Pemproses mengekalkan data dari talian datasehingga ingatan mengaktifkan DTACK*. Operasi tulis juga memerlukan tidak kurang daripada 4 kitarjam.

Pemindahan Data Periferal 6800

Dalam sebarang pemindahan data segerak, semua operasi berasaskan suatu isyarat jam. Dalampemproses 68000, pemindahan data segerak dilakukan semasa mengantaramuka dengan periferal famili6800; semua pemindahan data disegerakkan dengan isyarat E yang mempunyai kelajuan 1

10 frekuensiCLK.

Rajah 9.16: Penyambungan pemproses 68000 dengan periferal 6800.

Rajah 9.16 menunjukkan rajah blok penyambungan periferal siri 6800 kepada pemproses 68000.Apabila periferal diaktifkan, isyarat VPA* dikembalikan kepada pemproses memaklumkannya ia sedangberinteraksi dengan peranti 6800. Kemudian pemproses memindahkan data menggunakan kaedahsegerak yang ditunjukkan dalam Rajah 9.17.

Rajah 9.19 menunjukkan rajah masa pemindahan data dengan periferal 6800. Tempoh sebenarbagi setiap kitar segerak berubah-ubah bergantung kepada bila isyarat E menjadi rendah selepas VPA*diterima. Rajah yang ditunjukkan di sini hanyalah satu kemungkinan daripada beberapa rajah masa yangboleh dihasilkan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 150: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

146 Bab 9. Ciri Perkakasan MC68000

Rajah 9.17: Carta aliran untuk pemindahan data dengan periferal 6800.

Rajah 9.18: Jam CLK dan E.

Rajah 9.19: Rajah masa untuk pemindahan data dengan periferal M6800.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 151: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

9.7. Kitar Suruhan 147

Latihan

1. Terangkan operasi DTACK*. Apa terjadi jika ia tidak dapat diaktifkan?

2. Tentukan nilai pada talian alamat, strob data dan isyarat-isyarat kawalan lain apabila suruhanMOVE.B $1234,D0 dilaksanakan.

3. Reka litar penyahkod status pemproses menggunakan penyahkod 1 daripada 8. Pastikan AS*digunakan untuk membolehkan penyahkod.

4. Apakah fungsi khas yang dilakukan oleh A1 hingga A3 semasa kitar akuan sampukan?

5. Reka litar dengan satu suis yang mengawal sama ada pemproses berjalan atau berhenti. Awas: pinHALT* tidak boleh disambung terus ke bumi.

6. Kaji rajah masa pemindahan segerak. Berapa kitar jamkah tempoh paling singkat untuk satu kitarbas? Tempoh paling lama? Apakah keadaan yang menyebabkan kedua-dua situasi?

7. Dapatkan jadual analisis logik bagi turutan suruhan berikut:

ORG $1000START MOVE.L SIGMA,D0

MOVE.B #85,D0MOVE.W D0,ALPHAJMP *

SIGMA DS.L -1ALPHA DS.W 1

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 152: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

148 Bab 9. Ciri Perkakasan MC68000

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 153: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 10

Sistem Ingatan

Objektif

• Jenis serpihan ingatan

• Pengantaramukaan ingatan dengan bas 68000

• Rekabentuk penyahkod alamat

• Pengenalan kepada input/output

10.1 Organisasi Ingatan

Ingatan ialah peranti pasif yang peranannya menyimpan maklumat. Terdapat dua kategori ingataniaitu ingatan baca sahaja dan ingatan capaian rawak. Ingatan baca sahaja (ROM1) ialah ingatanyang kandungannya kekal walaupun tanpa bekalan kuasa. Kegunaannya ialah menyimpan maklumatkekal seperti aturcara permulaan yang diperlukan oleh setiap sistem dan subrutin asas terutama untukinput/output. Ingatan baca sahaja juga dikenali sebagai ingatan tak meruap. Ingatan capaian rawak(RAM2) pula kehilangan maklumat di dalamnya tanpa bekalan kuasa. Ia membolehkan data disimpansecara sementara semasa sistem beroperasi. Dengan mengisikan aturcara ke dalam RAM, fungsi sesuatusistem boleh diubah.

Semua sistem komputer mesti mempunyai ROM. Dalam sistem yang kecil, RAM mungkintidak diperlukan jika daftar-daftar pemproses mencukupi bagi penyimpanan maklumat. Sebaliknya,dalam sistem serba guna seperti komputer peribadi, saiz RAM lebih besar berbanding ROM. Dalamsistem ini, ROM hanya digunakan semasa sistem mula-mula dipasang untuk melakukan rutin uji diriseterusnya mengisikan sistem pengoperasian dari cakera ke dalam RAM. Setelah sistem pengoperasiandilaksanakan, ia tidak lagi memerlukan ROM.

Ingatan yang digunakan dalam sistem mikropemproses dibuat daripada bahan semikonduktor.Dalam serpihan, bit-bit diatur dalam tatasusunan dua dimensi. Rajah 10.1 menunjukkan rekabentuksebuah EPROM (sejenis ROM) yang menggunakan tatasusunan sedemikian. Bit-bit dalam tatasusunandicapai menggunakan alamat yang dimasukkan melalui talian-talian alamat. Operasi yang dikehendakidinyatakan melalui isyarat baca atau isyarat tulis. Bagi operasi baca, data dikeluarkan oleh unit ingatanke bas data. Bagi operasi tulis, data disediakan oleh pemproses dan disimpan oleh ingatan.

1read-only memory2random access memory

149

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 154: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

150 Bab 10. Sistem Ingatan

Rajah 10.1: Rajah blok EPROM.

10.2 Ingatan Baca Sahaja

Ingatan baca sahaja terdiri daripada MROM, PROM, EPROM dan EEPROM. Semasa operasi sistem,ROM hanya dibaca dan tidak ditulis. Rajah 10.2 menunjukkan simbol logik bagi sebuah EPROM yangmana bas alamat dan isyarat kawalan berfungsi sebagai input manakala bas data berfungsi sebagaioutput.

MROM (mask ROM) ialah ROM yang diaturcara pada peringkat topeng. Semasa proses pembuatanROM, suatu topeng menetapkan dari awal kandungan setiap alamat. Untuk mengaturcara ingatanini, pelanggan memberikan kandungan ROM kepada pengilang ROM. Maklumat ini digunakan untukmembuat topeng untuk mengilang ROM khusus bagi pelanggan tersebut. Setelah diaturcara, ROM tidakboleh diubah langsung. Sebarang kesilapan, walaupun sedikit, memerlukan masa yang lama dan kosyang tinggi untuk diperbetulkan tetapi kos pembuatan setiap serpihan sangat rendah. ROM ini digunakanuntuk sistem dijual dengan banyak contohnya ROM set aksara yang terdapat dalam pengawal paparanvideo.

PROM3 bermakna ROM boleh aturcara. Ingatan jenis ini boleh diaturcara menggunakan pengatur-cara ROM. Setiap bit dalam ROM ini ialah suatu fius yang boleh diputuskan. Sebelum diaturcara,

3programmable ROM

Rajah 10.2: Simbol logik bagi EPROM.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 155: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.3. Ingatan Capaian Rawak 151

kesemua bit mempunyai nilai yang sama (katakan semuanya logik 1). Apabila diaturcara, fius-fiusyang perlu diubah ke nilai berlawanan (katakan logik 0) diputuskan dengan memberikan arus yangtinggi. Setelah diputuskan, fius-fius tidak boleh disambung semula. PROM lebih mahal berbandingROM topeng tetapi ia menyenangkan pengeluar sistem kerana ia boleh diaturcara sendiri. EPROM

EPROM4 bermakna ROM boleh padam boleh aturcara. Ia boleh diaturcara seperti suatu PROM.Tetapi berlainan daripada PROM, ia boleh diaturcara semula selepas keseluruhannya kandungannyadipadam dengan mendedahkannya kepada cahaya lampau ungu (UV). Serpihan EPROM yang dibuatdengan seramik mempunyai tingkap kuartza yang membolehkan cahaya lampau ungu menghujaniserpihan silikon dalam. Cahaya ini terdapat dalam cahaya suria dan lampu kalimantang. Untukmempercepatkan pemadaman, pemadam EPROM dengan cahaya yang lebih kuat digunakan. EPROMboleh digunakan semula beratus-ratus kali. EPROM popular di kalangan para pereka sistem komputerkerana mereka perlu menukar aturcara berulang-kali semasa pembangunan sistem. Setelah sistemsampai ke versi terakhir dan sedia untuk digunakan, EPROM tersebut boleh dikekalkan di papan litar.Untuk mengurangkan kos produk, EPROM boleh diganti dengan OTP- ROM.

EEPROM5 ialah ROM yang boleh diaturcara dan boleh dipadam menggunakan kuasa elektrik.Keseluruhan serpihan tidak perlu dipadam sekiranya cuma beberapa alamat tertentu sahaja yang perludiperbetulkan. Sesuatu alamat dapat diubah dengan menulis terus ke alamat tersebut. EEPROM lebihmahal berbanding ingatan tak meruap jenis lain.

Dua variasi ingatan tak meruap ialah OTP-ROM dan ingatan kilat6. OTP- ROM7 mempunyailitar dalaman yang sama dengan EPROM. Ia lebih murah kerana dibungkus dalam plastik dan bukanseramik dengan tingkap kuartza. Oleh itu, setelah diaturcara ia tidak boleh dipadam maka tatacarapenggunaannya sama dengan PROM. Kelebihan penggunaan OTP-ROM adalah konfigurasi pin dan cirielektrikal yang sama dengan EPROM yang mengelakkan pembaziran kerja rekabentuk.

Ingatan kilat ialah ingatan yang menyerupai EEPROM tetapi kandungannya hanya boleh dipadamblok demi blok. Ini berbeza dengan EEPROM yang boleh diaturcara semula byte demi byte. Sebagaicontoh, satu ingatan kilat bersaiz 16 kilobyte mungkin terbahagi kepada blok-blok bersaiz 1 kilobyte.Untuk membetulkan sebarang kesilapan dalam sesuatu blok, keseluruhan blok tersebut dipadam melaluiarahan perisian dan keseluruhan blok diaturcara semula. Harganya yang murah dan kepadatannya yangtinggi kilat menyamai harga dan kepadatan DRAM.

10.3 Ingatan Capaian Rawak

Kandungan ingatan capaian rawak (ingatan baca/tulis) hilang apabila bekalan kuasa diputuskan.Terdapat dua jenis ingatan baca-tulis iaitu statik dan dinamik. Semasa operasi sistem, RAM bolehdibaca dan ditulis. Rajah 10.3 menunjukkan rajah simbol bagi sebuah SRAM (sejenis RAM) yang manabas alamat dan isyarat kawalan berfungsi sebagai input manakala bas data boleh berfungsi sebagai inputdan output bergantung mod operasi.

RAM statik (SRAM8) kerap dijumpai dalam sistem yang kecil. Ianya senang diantaramuka dan tidakmemerlukan banyak litar tambahan. Kepadatannya rendah, jadi untuk mengadakan sesuatu ingatan yangagak besar memerlukan jumlah serpihan yang banyak. Setiap bit disimpan dalam satu flip-flop yangdibentuk dari 4 transistor. Operasi statik bermakna sistem mikrokomputer hanya perlu membekalkankuasa untuk mengekalkan nilai bit.

RAM dinamik (DRAM9) sesuai digunakan dalam sistem yang memerlukan jumlah ingatan yangbanyak. DRAM ialah peranti ingatan yang paling padat dan murah. Ia menggunakan satu transistor dansatu pemuat parasitik (wujud secara semulajadi dalam serpihan) untuk menyimpan setiap bit menjadikan

4erasable PROM5electrically-erasable PROM6flash memory7One-Time Programmable ROM8static RAM9dynamic RAM

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 156: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

152 Bab 10. Sistem Ingatan

kepadatannya tinggi. Bagaimanapun, penggunaan pemuat bermakna nilai bit yang disimpan ternyahcasjika tidak dicas semula. Oleh itu, DRAM memerlukan litar segar-semula untuk menuliskan semulamaklumat yang terkandung dalam sesuatu bit sebelum nilai bit ternyahcas sepenuhnya. Sesuatu serpihanRAM dinamik adalah kira-kira 4 kali lebih padat berbanding RAM statik dengan muatan yang sama.

Bagi membina sistem mikrokomputer mudah, penggunaan SRAM sahaja sudah memadai. Dua unitSRAM tanpa sebarang litar tambahan boleh memenuhi kesemua keperluan ingatan baca/tulis sistemasas.

10.4 Serpihan Ingatan Piawaian Industri

Penggunaan serpihan ingatan dengan kedudukan pin standard memudahkan rekabentuk. Kebanyakanserpihan ingatan seperti SRAM, EPROM dan EEPROM menggunakan piawaian JEDEC. Serpihanpiawaian JEDEC10 menyimpan 8 bit dalam setiap alamat.

Peranti-peranti ingatan dengan organisasi yang sama tetapi dibuat dengan teknologi berlainanmempunyai konfigurasi pin yang sama. Sebagai contoh, SRAM 6164, EPROM 2764 dan EEPROM2864 kesemuanya mempunyai organisasi 8 k × 8. Dua digit terakhir menandakan saiz ingatan dalamkilobit. Ketiga-tiga serpihan mempunyai konfigurasi pin yang hampir serupa.

Jadual 10.1: Peranti-peranti EPROM piawaian industri.

Peranti Saiz Organisasi2716 16834 bit 2 k×8

2732A 32768 bit 4 k×82764 65536 bit 8 k×827128 131072 bit 16 k×827256 262144 bit 32 k×827512 524288 bit 64 k×8

Penggunaan EPROM membantu rekabentuk sistem kerana ia boleh digunakan semula, jadi kita akanmereka sistem dengan serpihan ini dahulu. Jadual 10.1 menunjukkan beberapa peranti EPROM standardyang lazim digunakan. Jadual 10.2 menunjukkan konfigurasi pin bagi serpihan EPROM 2716 hingga27512. Setiap cip mempunyai lapan talian data, D0 hingga D7. Jumlah talian alamat bergantung kepadajumlah alamat di dalamnya.

Manakah peranti yang patut digunakan? Ini bergantung pertama sekali kepada saiz ingatan yangdiperlukan. Suatu sistem asas mungkin memerlukan hanya 4 kilobyte ingatan. Ini boleh disediakanoleh dua serpihan 2716 yang mana setiap cip disambungkan ke sebelah bas data. Faktor kedua untukpemilihan peranti adalah kos. Seunit 2764 ada kalanya lebih murah berbanding dengan seunit 2716.Oleh itu, kita boleh menggunakan dua unit 2764 walaupun saiz ingatan yang diperlukan tidak sampai

10Joint Electron Devices Engineering Council

Rajah 10.3: Simbol logik bagi SRAM.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 157: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.4. Serpihan Ingatan Piawaian Industri 153

Jadual 10.2: Konfigurasi pin EPROM piawaian industri.

Pin 2716 2732A 2764 27128 27256 275121 Vpp Vpp Vpp A152 A12 A12 A12 A123 A7 A7 A7 A7 A7 A74 A6 A6 A6 A6 A6 A65 A5 A5 A5 A5 A5 A56 A4 A4 A4 A4 A4 A47 A3 A3 A3 A3 A3 A38 A2 A2 A2 A2 A2 A29 A1 A1 A1 A1 A1 A110 A0 A0 A0 A0 A0 A011 D0 D0 D0 D0 D0 D012 D1 D1 D1 D1 D1 D113 D2 D2 D2 D2 D2 D214 GND GND GND GND GND GND

Pin 2716 2732A 2764 27128 27256 2751228 Vcc Vcc Vcc Vcc27 PGM PGM A14 A1426 Vcc Vcc A13 A13 A1325 A8 A8 A8 A8 A8 A824 A9 A9 A9 A9 A9 A923 A11 A11 A11 A11 A11 A1122 OE* OE*/Vpp OE*/Vpp OE* OE* OE*/Vpp21 A10 A10 A10 A10 A10 A1020 CE/PGM CE CE CE CE CE19 D7 D7 D7 D7 D7 D718 D6 D6 D6 D6 D6 D617 D5 D5 D5 D5 D5 D516 D4 D4 D4 D4 D4 D415 D3 D3 D3 D3 D3 D3

4 kilobyte. Faktor-faktor lain termasuk penggunaan kuasa. Peranti 2764 mempunyai versi 27C64 yangmenggunakan teknologi CMOS dengan lesapan kuasa jauh lebih rendah.

Kebanyakan serpihan EPROM terdapat dalam versi CMOS yang kurang menggunakan kuasa. VersiCMOS ditandakan dengan huruf C dalam nama serpihan; misalnya, versi CMOS untuk 2764 ialah27C64.

Serpihan EEPROM piawai termasuk 2816 dan 2864. Agihan pin bagi 2864 adalah serupasepenuhnya dengan serpihan 2764. Rajah 10.3 menunjukkan mod operasi EPROM dan EEPROM.Untuk membaca data dalam EPROM atau EEPROM, kedua-dua input CS* (chip select) dan OE* (outputenable) perlu diberi nilai rendah. Jika CS* rendah tetapi OE* tinggi, cip berada dalam keadaan yangmana jika OE* rendah, output lebih pantas dikeluarkan (berbanding mengaktifkan kedua-dua inputserentak). Ada kalanya CS* dilabelkan sebagai CE* (chip enable) terpulang kepada pengilang cip.Pin berlabel PGM* (program) digunakan oleh pengaturcara PROM dan tidak dikawal oleh pemprosessemasa operasi sistem.

Serpihan-serpihan SRAM piawai pula termasuk 6116, 6164 dan 62256 (Lihat Jadual 10.4). Serpihan6164 mempunyai organisasi yang sama dengan serpihan 2764. Rajah 10.4 menunjukkan betapahampirnya agihan pin kedua-dua serpihan. Jadual 10.5 menunjukkan mod operasi SRAM. Untukmengaktifkan SRAM, input CS1* perlu rendah serentak dengan input CS2 bernilai tinggi. Untuk

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 158: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

154 Bab 10. Sistem Ingatan

Jadual 10.3: Mod operasi EPROM dan EEPROM.

CS* OE* Mod Bas DataH × Tunggusedia Galangan tinggiL L Baca Data KeluarL H Output lumpuh Galangan tinggi

Jadual 10.4: Peranti-peranti SRAM piawaian industri.

Peranti Saiz Organisasi6116 16834 bit 2 k×86164 65536 bit 8 k×862256 262144 bit 32 k×8

Rajah 10.4: Perbandingan konfigurasi pin bagi EPROM 2764 dan SRAM 6164

Jadual 10.5: Mod operasi 6164.

CS1* CS2 OE* WE* Mod Bas DataH × × × Tunggusedia Galangan tinggiL L × × Tunggusedia Galangan tinggiL H × L Tulis Data masukL H L H Baca Data KeluarL H H H Output lumpuh Galangan tinggi

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 159: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.5. Logik gam 155

membaca data, input OE* diaktifkan. Untuk menulis data, input WE* (write enable) pula diaktifkan.Jika OE* dan WE* aktif serentak, cip berada dalam mod tulis.

Penomboran bagi peranti-peranti EPROM dan EEPROM tidak banyak berbeza daripada satupengilang ke pengilang yang lain. Sebaliknya, penomboran bagi SRAM boleh mengelirukan. Misalnya,serpihan 6164 diberi angka komponen MCM6164 oleh Motorola tetapi HM6264 oleh Hitachi. Begitujuga, serpihan 6116 diberi angka HM6116 oleh Hitachi, 5116 oleh Motorola dan 56116 oleh Intel. Akhirkata, walaupun serpihan- serpihan boleh ditukarganti kerana saiznya sama, kita perlu prihatin terhadapciri elektrikal setiap satu kerana itu kita perlu menyemak helaian data sebelum menggunakannya.

10.5 Logik gam

Untuk mengarahkan cip ingatan melakukan peranannya – mengeluar dan menyimpan data – isyaratyang betul mesti diletakkan di pin kawalan ingatan. Bagaimanapun, pin yang terdapat di pakej68000 tidak boleh terus disambung ke ingatan. Selain nama isyarat yang berbeza, pin di cip 68000mempunyai tafsiran berbeza dengan pin di cip ingatan. Untuk membolehkan dua jenis peranti berbezaini berkomunikasi, perlu ada penterjemah isyarat. Litar penterjemah ini diberi logik gam11. Logik gammencantum pemproses dengan peranti luar. Kedudukan logik gam dalam sistem ditunjukkan dalamRajah 10.5.

Alamat fizikal yang keluar di bas alamat tidak serupa dengan apa yang dianggap oleh pengaturcara.Alamat yang dilihat oleh pengaturcara (alamat logikal) adalah 32 bit. Daftar-daftar yang menyimpanalamat seperti PC, A0 hingga A6, dan SP, kesemuanya menyimpan 32 bit. Secara teori, sebarang nilaialamat yang dipindah dari daftar-daftar alamat ke bas alamat adalah juga 32 bit, iaitu bit 0 hingga31. Bagaimanapun, bas alamat 68000 hanya mempunyai 23 talian iaitu A1 hingga A23. Rajah 9.3menunjukkan bit-bit manakah yang dikeluarkan terus ke bas alamat. Bit A24 hingga A31 langsungtidak dikeluarkan. Bit A0 dikeluarkan secara tidak langsung melalui talian UDS* dan LDS*. Ini telahdigambarkan di Rajah 9.3.

Rajah 10.6 menunjukkan bagaimana UDS* dan LDS* diterbitkan dari bit A0. Perhatikanterdapatnya satu isyarat dalaman yang digelar WORD/BYTE*. Isyarat ini diset bergantung kepadajenis capaian semasa. Sebagai contoh, suruhan

MOVE.W $1000,D0

ialah suruhan yang membaca keseluruhan kata jadi isyarat WORD/BYTE* bernilai 1, dan kedua-duaUDS* dan LDS* menjadi aktif. Ini kerana keseluruhan bas data digunakan. Sebaliknya, suruhan

11glue logic

Rajah 10.5: Logik gam menterjemahkan isyarat dari pemproses supaya difahami ingatan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 160: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

156 Bab 10. Sistem Ingatan

MOVE.B D0,$20001

melibatkan hanya satu byte jadi sebelah bas data sahaja digunakan. Ini menjadikan WORD/BYTE*bernilai 0. Oleh kerana alamat ganjil digunakan, LDS* aktif tetapi UDS* tidak. Jika terdapatpemindahan data byte di alamat genap sahaja, isyarat UDS* tetapi LDS* tidak. Jadual 10.6menyenaraikan kesemua operasi yang melibatkan bas data. Perhatikan bahawa jika kedua-dua UDS*dan LDS* tinggi, tiada pemindahan data sedang dilakukan. Rajah 10.7 menunjukkan kaitan antaraisyarat UDS* dan LDS* dengan peta ingatan.

Jadual 10.6: Bas data dan isyarat strob data.

Operasi UDS* LDS* R/W* Genap Ganjil(D8-D15) (D0-D7)

Melahu H H –Tiada Tiada

data sah data sahBaca

L L HData sah Data sah

16 bit Bit 8-15 Bit 0-7Baca

H L HTiada Data sah

byte rendah data sah Bit 0-7Baca

L H HData sah Tiada

byte tinggi Bit 8-15 data sahTulis

L L LData sah Data sah

16 bit Bit 8-15 Bit 0-7Tulis

H L LData sah Data sah

byte rendah Bit 0-7 Bit 0-7Tulis

L H LData sah Data sah

byte tinggi Bit 8-15 Bit 8-15

Rajah 10.8 menunjukkan secara ringkas isyarat-isyarat yang perlu diambil dari pemproses untukmengawal operasi ingatan. Perlu diingat rajah ini amat dipermudahkan kerana terdapat logik yang perluditambah sebelum ingatan berfungsi sepenuhnya.

Rajah 10.6: Penjanaan UDS* dan LDS*.

10.6 Logik Kawalan Ingatan

Apabila beberapa cip ingatan perlu dikawal, ada baiknya isyarat kawalan individu diselaraskan. Iniditunjukkan dalam Rajah 10.9. Dari isyarat UDS*, LDS* dan R/W*, empat isyarat diterbitkan iaituUPRD, LORD, UPWR dan LOWR. UPRD* (upper read) dan LORD* (lower read) masing- masing

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 161: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.6. Logik Kawalan Ingatan 157

Rajah 10.7: Kaitan antara UDS*, LDS* dan peta ingatan.

Rajah 10.8: Rajah blok bagi penyambungan bas pemproses dengan ingatan.

mengawal operasi baca di bas data atas dan bawah. Isyarat UPRD* dan LORD* disambungkan teruske input OE* pada cip ingatan genap dan ganjil. UPWR* (upper write) dan LOWR* (lower write)pula masing-masing mengawal operasi tulis di bas data atas dan bawah. Isyarat UPRD* dan LORD*disambungkan terus ke input WE* (pada RAM sahaja) pada cip ingatan genap dan ganjil.

Litar dalam Rajah 10.9 boleh diperbaiki dengan merujuk semula Jadual 10.6. Apabila 68000 sedangmembaca satu byte dalam ingatan, ia cuma akan membaca bas data sebelah atas atau bawah menurutkedudukan byte, dan mengabaikan sebelah yang lain. Jika kedua-dua belah bas data dibekalkan dengandata, 68000 masih beroperasi dengan betul. Oleh itu, dalam operasi baca, isyarat baca ke ingatan tidakperlu dipisahkan, dan jumlah get logik boleh dikurangkan. Litar yang diperbaiki ditunjukkan dalamRajah 10.10.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 162: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

158 Bab 10. Sistem Ingatan

Ke pin WE*cip ingatan genap

Ke pin WE*cip ingatan ganjil

Ke pin OE*cip ingatan genap

Ke pin OE*cip ingatan ganjil

Rajah 10.9: Litar kawalan baca/tulis ingatan.

RD*

UPWR*

LOWR*

UDS*

LDS*

R/W*

Ke pin OE*semua cip ingatan

Ke pin WE*cip ingatan genap

Ke pin WE*cip ingatan ganjil

Rajah 10.10: Litar kawalan baca/tulis ingatan yang diperbaiki.

10.7 Penyahkodan Alamat

Dalam sesuatu sistem mikrokomputer, terdapat beberapa peranti yang berada di bawah kawalan pem-proses. Pada sesuatu masa, pemproses hanya boleh bertukar data dengan satu peranti sahaja. Pemilihanperanti ditentukan oleh kedudukannya dalam peta ingatan. Litar penyahkod alamat berfungsi memilihperanti yang diaktifkan bergantung kepada suruhan yang dilaksanakan. Rajah 10.11 menunjukkankedudukan penyahkod dalam rekabentuk sistem.

Fungsi penyahkod alamat ingatan ialah mengawas keadaan bas alamat dan menentukan bilakahsesuatu cip ingatan dibolehkan. Rajah 10.12(a) menunjukkan kaitan penyahkod dengan bas alamat dancip yang dikawalnya. Isyarat SEL* ialah output penyahkod yang mengaktifkan cip ingatan. Penyahkodalamat menunggu pola tertentu muncul di talian alamat serta nilai rendah di AS* sebelum mengaktifkanSEL*. Apabila syarat ini dipenuhi, nilai rendah pada SEL* menjadikan input CS* pada ingatan turun.Ini mengaktifkan ingatan dan menyambungkan ingatan dengan bas data. Jika bas alamat mengandunginilai selain yang ditunggu oleh penyahkod, output penyahkod adalah tinggi, melumpuhkan cip danmeletakkan output cip ke galangan tinggi. Kesannya sama dengan menanggalkan cip daripada bas data.Rajah 10.12(b) menunjukkan rajah masa yang dipermudahkan melambangkan aktiviti dalam bas alamatdan kaitan antaran AS* dan SEL*.

Cabaran yang kita hadapi ialah mengaktifkan cip ingatan pada masa yang tepat. Kita perlumengetahui berapakah ingatan yang diperlukan. Ini menentukan berapa talian disambungkan terus keingatan dan berapa talian masuk ke penyahkod. Jika ingatan sebanyak 16 K mencukupi, kita tahu 14talian alamat pergi terus ke ingatan (kerana 214 = 16384). Baki talian di bas alamat pergi ke penyahkod

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 163: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.7. Penyahkodan Alamat 159

Rajah 10.11: Penyahkod alamat memilih peranti yang bertukar data dengan 68000.

(a) Rajah blok.

Bas alamat

AS

SEL

Sah

(b) Rajah masa.

Rajah 10.12: Rajah blok penyahkod alamat.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 164: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

160 Bab 10. Sistem Ingatan

Rajah 10.13: Menyahkod bas alamat.

alamat.Sebagai contoh, suatu seksyen EPROM sebesar 32Kbyte bermula dari alamat 0 perlu diantaramuka

dengan sistem. Beberapa soalan perlu dijawab terlebih dahulu:

1. Apakah cip yang sesuai?

2. Apakah julat yang diliputi oleh ingatan ini?

3. Bagaimanakah pin-pin 68000 digunakan?

Untuk mengadakan ingatan sebesar 32Kbyte, dua cip yang setiap satu bersaiz 16Kbyte diperlukan.Ini kerana setiap cip mempunyai bas data 8 bit sedangkan bas data 68000 besarnya 16 bit. IsyaratUDS* dan LDS* mengaktifkan salah satu atau kedua-dua cip ini. Cip yang sesuai ialah 27128 keranacip ini berpadanan dengan saiz yang dikehendaki. Julat alamat yang diliputi oleh kedua-dua cip ialah0 hingga 32Kbyte 1 atau $000000 hingga $007FFF. Setiap cip mengandungi 16K alamat jadi jumlahtalian alamat di cip ialah 14 kerana 214 = 16384 = 16K. Talian alamat A1 hingga A14 pergi terus ke cip.Bakinya, talian A15 hingga A23 pergi ke penyahkod alamat. Semua maklumat ini diringkaskan dalamRajah 10.13.

Setelah talian-talian alamat diagih-agihkan, litar penyahkod pula perlu direka. Mereka penyahkoduntuk EPROM ini bermaksud mengesan kewujudan alamat $000000 hingga $007FFF. Seperti yangdiringkaskan dalam jadual berikut, alamat-alamat ini mempunyai nilai 0 di talian A23 hingga A15 (talianA14 hingga A0 pergi terus ke EPROM).

Litar penyahkod untuk ingatan ini perlu mengesan kewujudan nilai-nilai ini. Litar yang terhasilditunjukkan dalam Rajah 10.14. Apabila membina litar penyahkod sebenar, get begini memang tidakboleh didapati di pasaran. Penyelesaian pertama ialah membina get ini menggunakan beberapa getkecil. Ini tidak kemas dan memerlukan pendawaian serta get yang banyak. Penyelesaian keduaialah menggunakan litar pembanding seperti 74LS688. Penyelesaian ketiga yang lebih padat ialahmenggunakan PLA12. Bagaimanapun, tanpa PLA, kita masih boleh mengurangkan jumlah litar melaluipenyahkodan separa yang akan diterangkan kemudian.

12programmable logic array

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 165: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.8. Litar Penjana DTACK* 161

(a) Mengenalpasti bit.

(b) Litar yang terhasil.

Rajah 10.14: Menyahkod alamat $000000-$007FFF.

10.8 Litar Penjana DTACK*

Isyarat DTACK* memberitahu pemproses bahawa operasi baca atau tulis boleh ditamatkan. Isyaratini perlu dikembalikan ke pemproses selepas satu lengah yang sesuai apabila sesuatu peranti ingatandicapai. Litar dalam Rajah 10.15 menunjukkan bagaimana output dari penyahkod alamat disambungke ingatan dan litar lengah. Litar lengah menjana lengah yang diperlukan (jika ada) dan mengaktifkanDTACK* pada masa yang betul. Isyarat AS* menjamin DTACK* tidak aktif semasa AS* kembalitinggi.

Rajah 10.15: Rajah blok litar DTACK*.

Untuk ingatan yang cukup pantas, penjana lengah tidak diperlukan. Untuk mengetahui sama adalengah diperlukan samasekali, kita perlu mengetahui:

• Tempoh untuk satu kitar jam pemproses

• Masa capaian ingatan atau tAC

• Lengah dalam penyahkod alamat

Tempoh untuk satu kitar jam pemproses ialah masa untuk isyarat CLK menjalani satu kitar. Jika68000 beroperasi pada 8 MHz, satu kitar jam memakan masa 1/8 MHz atau 125 nanosaat.

Masa capaian, tAC, untuk ingatan EPROM yang biasa ialah di antara 150 hingga 250 ns. Rajah 10.16menunjukkan kaitan masa capaian dengan isyarat-isyarat lain yang berkenaan. Dari rajah ini, kita boleh

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 166: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

162 Bab 10. Sistem Ingatan

Rajah 10.16: Kaitan DTACK* dengan masa capaian.

lihat pemproses memberi masa dua kitar jam untuk ingatan mengeluarkan data. Bagi pemproses yangberoperasi pada 8 MHz, ini bersamaan 125 ns x 2 = 250 ns. Jika masa capaian ingatan kurang daripada200 ns, isyarat DTACK* tidak perlu dilengahkan.

Rajah 10.17 menunjukkan satu keadaan di mana isyarat DTACK* terpaksa dilengahkan. Jumlahkitar jam yang perlu ditambah kepada kitar bas baca adalah penting kerana jika DTACK* kembali terlaluawal, ingatan belum sempat melakukan fungsinya manakala jika DTACK* kembali terlalu lewat, prestasisistem akan jatuh.

Rajah 10.17: Operasi baca dengan keadaan tunggu.

Langkah-langkah berikut menjelaskan pengiraan jumlah kitar jam yang ditambah kepada kitar bas:

1. Tukar masa capaian ke kiraan kitar jam. Misalnya, jika pemproses beroperasi pada 8 MHz dantAC untuk EEPROM ialah 350 ns, maka tAC = 3.5 kitar jam.

2. Genapkan ke 4 kitar jam. Jumlah lengah DTACK* ialah nilai dari Langkah 1 di atas tolak 2. Kitaboleh menolak 2 kerana pemproses memberikan 2 kitar percuma. Dalam contoh ini, jawapannyaialah 4 – 2 = 2 kitar jam.

Cara termudah bagi melengahkan penjanaan DTACK* ialah dengan menggunakan flip-flop yangdiatur sebagai daftar anjak. Rajah 10.18 menunjukkan litar logik yang menjana lengah sebanyak duakitar jam. Untuk menambah jumlah lengah, sambungkan sahaja flip-flop tambahan di kanan litar ini,satu flip-flop untuk satu kitar jam tambahan. Untuk analisis bagi litar ini, rujuk Rajah 10.19. Perhatikanbahawa analisis ini hanya untuk flip-flop picuan pinggir positif sahaja.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 167: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.9. Penyahkodan Separa 163

Rajah 10.18: Penjana lengah DTACK* yang dibina dengan flip-flop.

Rajah 10.19: Rajah masa bagi penjana DTACK* flip-flop.

Jika jumlah lengah yang diperlukan lebih daripada 4 kitar jam, ada baiknya lengah dijanamenggunakan daftar anjak untuk mengurangkan bilangan komponen. Rajah 10.20 menunjukkan satupenyelesaian menggunakan daftar anjak SIPO 74LS164 yang boleh menjana lengah sehingga 8 kitarjam.

Penyelesaian termudah untuk penjanaan DTACK* ialah menggunakan komponen-komponen pantassupaya kita langsung tidak perlu memikirkan tentang lengah. Ini membolehkan pin DTACK* dibumikanterus.

Rajah 10.20: Menjana lengah dengan daftar anjak.

10.9 Penyahkodan Separa

Walaupun ruang alamat 68000 adalah 16 megabyte, besar kemungkinan kita hanya menggunakansebahagian kecil sahaja daripada ruang ini. Katakan kita menggunakan dua unit 2764 untuk EPROM. Inibermakna hanya 2×8K atau 16 kilobyte sahaja digunakan untuk ingatan kekal. Jika kita menggunakan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 168: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

164 Bab 10. Sistem Ingatan

Rajah 10.21: Rajah masa untuk penjana lengah DTACK* dengan daftar anjak.

6264 pula untuk SRAM, kita hanya menggunakan 16 kilobyte lagi. Kita pula mungkin menambah satuatau dua peranti I/O jadi peta ingatan boleh dikatakan masing kosong.

Oleh kerana terdapat hanya beberapa komponen sahaja dalam sistem, litar penyahkod bolehdiringkaskan dengan banyaknya. Untuk mengurangkan kekompleksan litar, tidak semua talian alamatperlu dinyahkod. Penyahkodan separa membolehkan cip ingatan diaktifkan dengan perkakasan yangminimum.

Untuk penyahkodan separa, jumlah peranti yang diantaramuka dengan pemproses perlu diketahuiterlebih dahulu. Sebagaimana dengan penyahkodan penuh, tentukan julat alamat untuk setiap serpihan(sama ada ingatan atau peranti I/O). Selepas itu, tentukan talian-talian yang pergi terus ke perantitersebut. Baki talian yang tinggal dimasukkan ke litar penyahkod separa.

Contoh:

Reka penyahkod separa untuk sistem dengan peranti ROM sebesar 32K bermula dari $000000, RAMsebesar 128K bermula di $400000, dan satu peranti I/O di alamat $800000 hingga $80001F (32 alamat).

Penyelesaian:

Mula-mula tentukan julat alamat setiap peranti. Senarai berikut didapati:

• Alamat terakhir RAM = $400000 + 128K 1 = $49FFFF.

• Alamat terakhir ROM = $000000 + 32K 1 = $007FFF.

• I/O terletak di alamat $800000 hingga $80001F.

Masukkan maklumat di atas ke dalam satu jadual seperti di bawah. Talian yang terus pergi keserpihan ditandakan sebagai X. Jadi untuk ROM, talian A0 hingga A14 disambung terus ke serpihan.Untuk RAM, taliannya ialah A0 hingga A16 dan untuk I/O taliannya ialah A0 hingga A4.

Setelah langkah di atas dilakukan, pilih talian alamat yang minimum untuk memilih satu daripadatiga peranti. Di sini, talian A23 dan A22 memadai untuk membezakan di antara ketiga-tiganya.Penyelesaian yang menggunakan 74LS139 iaitu penyahkod 2 kepada 4 ditunjukkan dalam Rajah 10.22.

Litar dalam Rajah 10.22 boleh menampung satu lagi peranti jika perlu. Ia memadai jika jumlahperanti yang perlu disambungkan tidak akan melebihi empat. Bagaimanapun, kita hanya menggunakansetengah sahaja daripada peranti 74LS139 dan setengah lagi langsung tidak digunakan. Penyelesaianyang ditunjukkan dalam Rajah 10.23 menggunakan 74LS138 iaitu penyahkod 3 kepada 8. Kerana iamempunyai 8 output, ia boleh memilih satu daripada lapan peranti. Ini memberikan kita pilihan padamasa akan datang sekiranya lebih banyak peranti perlu ditambah.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 169: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

10.9. Penyahkodan Separa 165

(a) Hamparan kerja.

Tidakdigunakan

ROMRAM

I/O

Tidakdigunakan

(b) Litar yang terhasil.

Rajah 10.22: Penyahkod separa yang memilih satu daripada lapan peranti.

1

0

Tidakdigunakan

Tidakdigunakan

Tidakdigunakan

Tidakdigunakan

Tidakdigunakan

(Tidak digunakan)

(Tidak digunakan)

(Tidak digunakan)

(Tidak digunakan)

(Tidak digunakan)

ROM

RAM

I/O

Rajah 10.23: Penyahkod 3 kepada 8.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 170: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

166 Bab 10. Sistem Ingatan

Latihan

1. Jika satu kedudukan ingatan didapati salah setelah pengilangan besar-besaran dimulakan, ingatanjenis manakah yang memerlukan masa terpanjang untuk membetulkan kesilapan?

2. Bagaimanakan ingatan EPROM dipadam?

3. Jika EPROM mengandungi 64 kilobyte, berapa jumlah pin untuk bas alamat (address bus)?

4. Apa fungsi pin OE* pada ROM?

5. Serpihan SRAM mempunyai satu pin yang tiada pada EPROM. Sebutkan nama pin dan fungsinya.

6. Ke manakah output penyahkod disambungkan di serpihan RAM?

7. Sebutkan jumlah kitar jam minimum untuk 68000 melakukan operasi baca dari ingatan.

8. Lukiskan satu litar ringkas yang mengeluarkan logik 0 apabila A23, A22, A21 dan AS*kesemuanya bernilai logik 0.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 171: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 11

Pengantaramukaan Input/Output Asas

Objektif

• Konsep Input/Output

• Organisasi Peranti I/O

• Output asas dengan selak dan LED

• Input asas dengan penimbal dan suis

• Pengantaramukaan LED 7 segmen

11.1 Prinsip Input/Output

Salah satu ciri asas sistem komputer adalah keupayaan bertukar-tukar data dengan peranti luar, danmembenarkan pengguna berinteraksi dengan sistem. Contoh-contoh peranti periferal adalah:

Peranti Input Peranti OutputSuis Lampu

Papan kekunci Paparan LCDTetikus Skrin video

Pengimbas Pembesar suaraKamera Pencetak

Kelajuan antara pemproses dan peranti periferal amat berbeza. Kelajuan antara periferal jugaberbeza. Pencetak boleh mencetak beratus-ratus aksara sesaat, tetapi papan kekunci hanya menghantarbeberapa aksara dalam masa yang sama. Litar antaramuka input/output diperlukan bagi membolehkanperanti-peranti berbeza ini berinteraksi dengan pemproses. Fungsi litar antaramuka adalah:

• Mengendalikan data antara pemproses dan periferal

• Membolehkan pemproses memohon status data yang dihantar

• Mengawal operasi periferal

Peranti antaramuka input/output boleh dikategorikan dalam dua kelompok besar iaitu input/outputasas dan input/output periferal. Input/output asas adalah operasi yang melibatkan peranti dua keadaan(tinggi/rendah) seperti LED dan suis. Input/output periferal melibatkan interaksi kompleks sepertipencetak dan papan kekunci.

167

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 172: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

168 Bab 11. Pengantaramukaan Input/Output Asas

(a) I/O terpeta ingatan. (b) I/O terasing.

Rajah 11.1: Perbezaan peta bagi I/O terpeta ingatan dengan I/O terasing.

Pemetaan Input/Output

Dari pandangan perisian, peranti input/output dikawal melaluidaftar periferal yang juga dikenali sebagailiang1. Terdapat dua skima pemetaan input/output iaitu input/output terpeta ingatan2 dan input/outputterasing3. Dalam input/output terpeta ingatan, peranti ingatan dan liang input/output terletak dalampeta ingatan yang sama. Pemproses menggunakan set suruhan yang sama untuk operasi input/output.Misalnya, jika kita ingin membaca daripada suatu peranti input di alamat $8000000 dan mengeluarkanmaklumat yang dibaca tadi ke peranti output di alamat $900000, turutan berikut diberikan:

MOVE.B $E000,D0 ; BACA DARI PERANTI INPUTMOVE.B D0,$E010 ; TULIS KE PERANTI OUTPUT

Dalam input/output terasing, pemproses mempunyai ruang alamat berasingan dan suruhan khasuntuk peranti input/output. Dari aspek perkakasan, pemproses mempunyai talian kawalan khas untukinput/output. Untuk bersalingtindak dengan peranti I/O, suruhan-suruhan khas digunakan. Misalnya,jika kita ingin membaca dari peranti di liang 0 dan menuliskan data yang dibaca ke liang 1, turutanberikut digunakan (contoh untuk Intel 8086):

IN AX,[00H] ; BACA DARI LIANG 0OUT [01H],AL ; TULIS KE LIANG 1

Dalam input/output terpeta ingatan, sebahagian ruang ingatan dikhaskan untuk operasi input/output.Kesemua liang kelihatan seperti lokasi ingatan biasa. Kelebihan input/output terpeta ingatan adalah:

• Kesemua mod alamat dan suruhan boleh digunakan untuk operasi I/O (contohnya olahan bit)

• Pemproses menjadi mudah kerana tidak mempunyai suruhan khas

Kelemahan input/output terpeta ingatan ialah:

• Ruang ingatan dikurangkan kerana sebahagian diperuntukkan kepada I/O

1port2memory-mapped I/O3isolated I/O

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 173: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.1. Prinsip Input/Output 169

(a) I/O terpeta ingatan. (b) I/O terasing.

Rajah 11.2: Skima Input/Output.

• Terdapat risiko ralat jika ralat pengaturcaraan yang mencapai alamat peranti I/O

• Ketiadaan isyarat I/O khusus bagi mengawal operasi I/O

Secara tradisinya, pemproses Motorola/Freescale termasuk famili 68k menggunakan input/outputterpeta ingatan manakala pemproses Intel menggunakan input/output terasing. Rajah 11.14 memband-ingkan pemetaan peranti I/O dalam peta ingatan dan peta I/O. Rajah 11.2 menunjukkan perbezaan antarakedua-dua pemetaan dari aspek perkakasan.

Input/Output Mudah

Input/output mudah adalam operasi yang melibatkan hanya dua keadaan (tinggi/rendah). Jumlah bityang diproses mungkin lebih daripada satu bit. Contohnya, output nilai BCD memerlukan 4 bit dihantarserentak. Untuk mengadakan operasi input/output asas, dua peranti elektronik digital kerap digunakan:

• Selak untuk output contohnya 74LS374

• Penimbal tiga keadaan untuk input contohnya 74LS244

Peranti sebenar yang disambungkan adalah peranti output seperti LED, lampu dan geganti danperanti input seperti suis tekan dan suis BCD. Dalam input/output mudah, pemproses boleh terusmenghantar nilai yang dikehendaki kepada peralatan. Contohnya, untuk menyalakan lampu, hantarkannilai ‘1’ dan lampu akan terus menyala. Untuk memadam lampu, hantarkan nilai ‘0’.

Input/Output Periferal

Peranti periferal adalah peralatan kompleks yang bertukar-tukar data dengan pemproses seperti penc-etak, papan kekunci dan cakera. Besar kemungkinan ia sendiri mengandungi satu pemproses ataumikropengawal. Operasi periferal tidak semudah I/O dengan LED atau suis yang boleh menerima ataumenghantar data pada bila-bila masa. Sebaliknya, peranti periferal memerlukan penyegerakan. Sebagaicontoh, data yang diambil dari papan kekunci semasa tidak diketik tidak mempunyai apa-apa makna.Pemproses perlu memastikan ada ketikan barulah sah data yang dibaca. Pemproses perlu menyemakstatus papan kekunci sehingga ada ketikan sebelum membaca data.

Cip antaramuka periferal memudahkan pengantaramukaan dengan periferal. Fungsi utamanyaialah penyegerakan pemindahan data antara pemproses dengan periferal. Cip antaramuka lazimnyamempunyai tiga jenis daftar dalaman:

• Daftar kawalan — Mengawal operasi periferal.

• Daftar status — Menyemak status periferal.

• Daftar data — Tempat data dibaca atau ditulis.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 174: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

170 Bab 11. Pengantaramukaan Input/Output Asas

(a) Peranti I/O mudah

(b) Peranti I/O periferal

Rajah 11.3: I/O mudah dan I/O periferal.

Pemindahan data antara peranti periferal boleh dilakukan secara bit demi bit (bersiri) atau banyakbit serentak (selari). Untuk melakukan input/output melalui cip antaramuka, terdapat dua cara asas iaituI/O tinjauan4 dan I/O terpacu sampukan 5.

Dalam kaedah I/O tinjauan, pemproses menyemak status peranti I/O melalui daftar status hinggalahsyarat ditemui. Kaedah tinjauan membazirkan masa pemproses kerana ia perlu menguji statusberulangkali sebelum melakukan pemindahan data. Sebagai contoh, untuk menghantar data pencetak,pemproses menyemak bit status yang menandakan kesediaan pencetak. Apabila bit status menyatakanpencetak sedia, barulah data dihantar.

Dalam kaedah I/O terpacu sampukan, pemproses disampuk atau dihentikan sementara apabila suatukeadaan berlaku. Kaedah ini sangat cekap kerana pemproses boleh membuat satu kerja lain sementaramenunggu periferal bersedia.

Antaramuka Selari dan Bersiri

Terdapat dua bentuk utama laluan data antara cip antaramuka dengan periferal iaitu selari dan bersiri.Dalam input/output selari, cip antaramuka mempunyai beberapa liang yang lebarnya satu byte setiap

satu. Satu byte penuh atau lebih boleh dihantar serentak. Contoh peranti antaramuka selari ialah PIAMC6821 dan PIT MC68230. Peranti-peranti ini kompleks dan boleh beroperasi dalam pelbagai mod.Arah data boleh ditentukan dari perisian, tidak seperti dengan selak atau penimbal. Ia mempunyaitalian strob dan jabat-tangan untuk memindahkan data dengan lebih efisyen. Ia juga boleh menyampukpemproses apabila periferal sedia.

Dalam input/output bersiri, satu bit dihantar setiap kitar jam. Input/output bersiri sesuai untukpenghantaran data jauh dengan kos rendah. Ia boleh digunakan untuk menghubungkan pemproses

4polled I/O5interrupt-driven I/O

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 175: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.2. Pengantaramukaan LED 171

Isyarat data

Talian kawalan

dan jam

Elektronikperiferal

Cipantaramuka

(a) I/O selari.

Cip antaramuka

Elektronikperiferal

Data masuk

Data keluar

Talian kawalan

dan jam

(b) I/O bersiri.

Rajah 11.4: Input/Output Selari dan Input/Output Bersiri.

dengan pemproses atau dengan periferal perhubungan data seperti modem. Contoh peranti antaramukabersiri ialah ACIA MC6850 dan DUART MC68681. Sebelum digunakan, peranti-peranti ini perludiaturcara dengan kelajuan dan format data (jumlah bit setiap aksara, pariti, dsb). Ia juga bolehmenyampuk pemproses apabila periferal sedia.

11.2 Pengantaramukaan LED

Peranti output termudah ialah selak. Rajah 11.5 menunjukkan rajah blok bagi pengantaramukaan 68000dengan selak. Disebabkan selak adalah peranti yang amat pantas, dengan lengah sekitar 20 ns berband-ing kelegaan masa 250 ns yang diberi oleh pemproses 8 MHz, input DTACK tidak perlu dilengahkan.Selain itu, rajah ini menunjukkan juga kaedah yang penyambungan input DTACK* menggunakan litarpemungut terbuka6. Litar logik jenis membolehkan peranti-peranti yang berantaramuka ditambah dandikurangkan dengan lebih mudah terutama jika sistem sedang dibangunkan.

Dalam pemproses 68000, peranti input/output dicapai menggunakan I/O terpeta ingatan makasebarang suruhan yang mencapai ingatan boleh digunakan untuk melakukan input/output. Selak hanyamemerlukan satu alamat sahaja dalam ingatan. Jika penyahkodan penuh digunakan, litar penyahkodperlu mengesan kesemua 23 talian dalam bas alamat. Penggunaan litar penyahkodan separa akanmengurangkan logik gam ke tahap yang munasabah.

Data yang dikeluarkan oleh selak boleh dihantar ke sebarang peranti yang memerlukan, contohnya8 LED seperti dalam Rajah 11.6. Litar ini dianggap menggunakan logik negatif kerana logik ‘0’menyalakan LED dan logik ‘1’ memadam LED. Ini berlawanan dengan kebiasaan yang mana logik‘1’ dianggap menyalakan sesuatu. Logik negatif digunakan di sini kerana dapat menjimatkan komponenlogik. Setiap LED tidak boleh disambung terus ke bumi atau bekalan kuasa. Untuk mendapatkan LEDyang menyala paling terang, ia memerlukan arus 20 mA. Dengan logik TTL, kaedah menyambungkanLED ia dengan pincang balikan. Merujuk Rajah 11.7, voltan bekalan 5V memberikan arus yangdikehendaki. Perintang yang lebih tinggi akan menjadikan LED malap, manakala perintang lebih rendahakan memendekkan hayat LED dan cip selak.

Aturcara berikut mengeluarkan pola “lampu berlari” di LED. Untuk aturcara ini, sistem dianggapmeletakkan LED di alamat $A00001. Logik yang digunakan ialah logik negatif iaitu logik ‘0’menyalakan LED.

;; ATURCARA UTK MENGUJI LED;

6open-collector

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 176: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

172 Bab 11. Pengantaramukaan Input/Output Asas

LED EQU $A00001 ;ALAMAT BERGANTUNG SISTEM

ORG $1000 ;INI JUGA BERGANTUNG SISTEM

START MOVE.B #%11111110,D0 ;NILAI AWALAGAIN MOVE.B D0,LED ;HANTAR KE LED;; LENGAH ˜ 0.1 saat;

MOVE.L #150000,D1WAIT SUB.L #1,D1

BNE WAITROL.B #1,D0BRA AGAIN

END START

11.3 Pengantaramukaan Pamer 7 segmen

Pamer 7 segmen7 ialah peranti untuk memaparkan nombor perpuluhan sebagai alternatif kepada pamermatriks bintik8 yang lebih kompleks. Ia meluas digunakan dalam jam digital, meter elektronik danperanti-peranti yang memaparkan maklumat berangka.

Pamer 7 segmen mempunyai 7 komponen LED. Setiap LED boleh dikawal sama ada padamatau menyala, dan boleh digabungkan untuk membentuk nombor-nombor. Ia selalu dijumpai dalambentuk condong untuk membantu ketampakan. Setiap segmen dirujuk oleh huruf a hingga g, sepertiyang ditunjukkan dalam Rajah 11.8. Satu LED tambahan yang mewakili titik perpuluhan, dp, bolehdigunakan untuk memaparkan nombor bukan integer.

Terdapat dua jenis pamer 7 segmen: katod sepunya (CC9) dan anod sepunya (CA10). Beza di antarakeduanya ialah katod sepunya semua katod 7 segmen dicantumkan dan untuk anod sepunya kesemua

77-segment display8dot matrix display9common cathode

10common anode

Rajah 11.5: Pengantaramukaan 68000 dengan selak.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 177: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.3. Pengantaramukaan Pamer 7 segmen 173

Rajah 11.6: Pengantaramukaan selak dengan LED.

Rajah 11.7: Pengiraan arus LED.

anod dicantumkan. Pamer CA menggunakan logik negatif (‘0’ = menyala, ‘1’ = padam) jadi segmendinyalakan dengan meletakkan logik ‘0’ pada pin berkenaan. Pamer CC, sebaliknya, menggunakanlogik positif. Bagi mengantaramuka dengan peranti serasi TTL seperti 74LS374, pamer CA amnyalebih sesuai kerana arus yang mengalir pada setiap LED lebih tinggi menghasilkan paparan yang lebihterang.

Jadual 11.1 menunjukkan kod yang kombinasi logik yang diperlukan bagi pamer CA. Seterusnya,Rajah 11.10 menunjukkan pengantaramukaan pamer CA dengan selak 74LS374. Kuasa dibekalkan

(a) Penamaan segmen. (b) Mempamerkan aksara hexa.

Rajah 11.8: Pamer 7 segmen

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 178: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

174 Bab 11. Pengantaramukaan Input/Output Asas

(a) Anode sepunya (CA). (b) Katod sepunya (CC).

Rajah 11.9: Perbandingan pamer CA dan CC.

melalui pin sepunya pamer 7 segmen. Di antara output selak dengan pin segmen, perintang sekitar220 Ω mesti ditambahkan untuk mengehadkan arus mengalir melalui setiap segmen LED.

Subrutin berikut memaparkan aksara 0 hingga 9 dan A hingga F bergantung kepada 4 bit

Jadual 11.1: Jadual penukaran BCD ke kod 7 segmen bagi pamer CA.

Nombor dp g f e d c b a Hex0 1 1 0 0 0 0 0 0 $C01 1 1 1 1 1 0 0 1 $F92 1 0 1 0 0 1 0 0 $A43 1 0 1 1 0 0 0 0 $B04 1 0 0 1 1 0 0 1 $995 1 0 0 1 0 0 1 0 $926 1 0 0 0 0 0 1 0 $827 1 1 1 1 1 0 0 0 $F88 1 0 0 0 0 0 0 0 $809 1 0 0 1 1 0 0 0 $98A 1 0 0 0 1 0 0 0 $88b 1 0 0 0 0 0 1 1 $83C 1 1 0 0 0 1 1 0 $C6d 1 0 1 0 0 0 0 1 $A1E 1 0 0 0 0 1 1 0 $86F 1 0 0 0 1 1 1 0 $8E

Rajah 11.10: Pengantaramukaan selak dengan pamer 7 segmen.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 179: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.4. Pengantaramukaan Suis 175

terendah D0.

;; DISP7: subrutin memaparkan kod hex ke 7 segmen CA;LED EQU $E000DISP7 AND.W #$F,D0 ; simpan 4 bit terendah, padam yg lain

LEA LUT,A0MOVE.B (A0,D0.W),LED ; hantarkan kod 7 segmen ke LEDMOVE.L #150000,D1

WAIT SUB.L #1,D1BNE WAITRTS

LUT DC.B $C0,$F9,$A4,$B0,$99,$92,$82,$F8DC.B $80,$98,$88,$83,$C6,$A1,$86,$8EEND START

11.4 Pengantaramukaan Suis

Jika selak mengadakan output asas bagi pemproses, penimbal pula mengadakan input asas. Rajah 11.11menunjukkan rajah blok penyambungan antara 68000 dengan penimbal. Seperti juga dengan selak,penimbal adalah sangat pantas dan isyarat DTACK tidak perlu dilengahkan. Rajah 11.12 menunjukkanbagaimana penimbal boleh menerima input dari suis.

Suis tidak boleh disambungkan terus ke bekalan kuasa kerana arus dari bekalan kuasa terlalu tinggiuntuk terus dimasukkan ke input penimbal. Rajah 11.12 menunjukkan kaedah menyambungkan suisdengan penimbal. Perintang yang perlu digunakan adalah sekitar 1 kσ. Dengan perintang ini, sebarangpusuan di bekalan kuasa tidak merosakkan cip penimbal. Rajah 11.13 menunjukkan aras arus semasasuis dibuka dan ditutup. Apabila suis dibuka, nilai logik yang dibaca ialah ‘1’ kerana suis terbukamemaksa arus mengalir masuk ke input penimbal. Apabila suis ditutup, nilai logik yang dibaca ialah‘0’ kerana tiada arus mengalir ke input. Pada masa ini, arus bertukar arah kerana galangan suis (sifar)lebih rendah daripada galangan input. Logik ini dianggap logik negatif kerana input ialah ‘0’ semasasuis ‘ON’ dan ‘1’ semasa suis ‘OFF’. Penggunaan logik negatif dengan penimbal TTL mengurangkankomponen logik.

Rajah 11.11: Pengantaramukaan 68000 dengan penimbal.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 180: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

176 Bab 11. Pengantaramukaan Input/Output Asas

Rajah 11.12: Pengantaramukaan 68000 dengan suis.

Rajah 11.13: Aras arus semasa operasi suis.

Keratan aturcara berikut adalah contoh bagaimana suis boleh diuji setelah dipasang. Fungsi aturcaraini hanya untuk mengeluarkan kembali nilai suis ke LED.

;; ATURCARA UNTUK MENGUJI SUIS;SUIS EQU $800001 ;ALAMAT SEBENAR BERGANTUNG SISTEMLED EQU $A00001

ORG $1000START MOVE.B SUIS,LED

BRA STARTEND

Dalam suis sebenar, kita menganggap ia suatu operasi yang ‘bersih’ dengan gelombang yang cantikseperti dalam Rajah 11.14(a). Pada hakikatnya, suis mekanikal melantun apabila ditekan menghasilkanisyarat yang bergerigi seperti dalam Rajah 11.14(b). Nilai logik yang berubah dari ‘1’ ke ‘’0’ sebenarnyamelantun berkali-kali antara nilai ‘0’ dan ‘1’ sebelum menetap di logik ‘0’. Berapa lamakah suismelantun? Kadangkala banyak, kadangkala langsung tidak. Kebanyakan suis akan stabil selepas 30 ms.Dua suis yang serupa pun tidak memberikan lantunan yang sama. Lantunan kekunci boleh dilakukanmenggunakan kaedah perkakasan atau perisian.

Satu cara menyahlantun kekunci11 ialah dengan selak SR seperti dalam Rajah 11.15. Rekabentuk

11key debouncing

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 181: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.4. Pengantaramukaan Suis 177

(a) Gelombang unggul dengan peralihan ‘bersih’ apabila kekunci ditekan.

(b) Gelombang sebenar dengan peralihan bergerigi.

Rajah 11.14: Menekan dan melepaskan kekunci menghasilkan lantunan.

Rajah 11.15: Nyahlantun menggunakan selak SR.

ini memerlukan suis DT12. Dua perintang menjana logik ‘1’ untuk input get NAND; suis menarik salahsatu input ke bumi.

Apabila suis berada dalam keadaan yang ditunjukkan, output get atas akan bernilai ‘1’ tidak kira apanilai input di sebelah. Keadaan ini menjadikan output get bawah menjadi ‘0’ yang menjadikan selakdalam keadaan stabil.

Jika suis bergerak ke tengah-tengah di antara terminal, selak masih mengekalkan keadaannya. Suisbergerak agak jauh antara terminal. Ia mungkin melantun tetapi tidak mungkin melantun kembali keterminal asal. Oleh itu outputnya masih ‘1’.

Apabila suis tersentuh terminal bawah, output selak menjadi ‘0’. Keadaan ini kekal walaupun suismelantun sekitar terminal bawah. Output kekal ‘0’ sehinggalah suis kembali ke atas dan tersentuhterminal atas.

Konfigurasi ini boleh didapati dengan cip MC14043/14044 yang mengandungi empat selak SR, jadiini mungkin satu penyelesaian yang berkesan untuk sistem yang banyak suis.

Litar SR ialah kaedah paling berkesan untuk menyahlantung tetapi ia jarang digunakan. Suis DT

12double-throw

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 182: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

178 Bab 11. Pengantaramukaan Input/Output Asas

Rajah 11.16: Nyahlantun menggunakan rangkaian RC.

lebih besar dan lebih mahal daripada suis ST13 biasa. Satu cara lain bagi menyahlantun ialah rangkaianRC seperti dalam Rajah 11.16. Ia nampak lebih mudah tetapi kaedah penggunaannya lebih komplekskerana nilai perintang dan kapasitor agak sukar untuk dikira dengan tepat, kerana adanya berinteraksidengan cip penyongsang.

Kaedah terakhir untuk nyahlantun yang disebutkan di sini ialah dengan cip MC14490. Iamengandungi 6 penyahlantun yang menggunakan gabungan rangkaian RC dan daftar anjak. Iamemerlukan suis ‘ST’ sahaja, maka ia kurang menggunakan ruang berbanding semua penyelesaiandi atas. Bagaimana pun, harga cip ini masih mahal. Adalah jauh lebih murah menggunakan operasinyahlantun secara perisian.

Asas kepada teknik perisian ialah dengan menyampel input secara berkala seperti dalam Ra-jah 11.17. Algoritma asasnya ialah menunggu sehingga nilai yang sama dibaca dua kali berturut. Inicuma berlaku setelah kekunci stabil. Subrutin berikut menayahlantun kekunci yang terletak di alamat$E00014. Andaikan terdapat 8 suis di alamat tersebut. Dengan logik negatif, nilai yang dibaca darialamat ini ialah $FF. Apabila sebarang kekunci ditekan, nilai yang dibaca bertukar dari $FF ke sebarangnilai lain, yang mana bit 0 mewakili suis yang ditekan. Selepas nilai bukan $FF diterima, subrutinmenunggu selama 30 ms sebelum menyampel suis sekali lagi. Pada bacaan kedua, jika nilai kembali ke$FF, ia kembali ke awal subrutin. Jika nilai bacaan kedua sama dengan bacaan pertama, input disahkandan subrutine kembali ke pemanggil. Untuk lebih keboleharapan, subrutin ini boleh diubah supayamenyemak input sehingga 3 atau lebih sampel bernilai sama.

;; DEBOUNC: subrutin menyahlantun 8 kekunci di bit terendah $E00014.;SUIS EQU $E00014

13single-throw

Rajah 11.17: Nyahlantun perisian menggunakan penyampelan berkala.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 183: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.5. Pengantaramukaan Papan Kekunci 179

DELAMT EQU 20DEBOUNC MOVE.B SUIS,D0 ; tunggu mana-mana bit sifar

CMP.B #$FF,D0BEQ DEBOUNC

MOVE.W #DELAMT,D1 ; tunggu 30 msDELY SUBQ.1 #1,D1

BNE DELY

MOVE.B SUIS,D1 ; baca sekali lagiCMP.B D0,D1 ; jika sama, tamat lantunanBNE DEBOUNC

RTS

Nilai malar DELAMT menentukan lengah antara persampelan. Untuk memudahkan pengiraan,ambil contoh 68000 yang beroperasi pada 10 MHz atau 100 ns setiap kitar jam. Satu kitar bas memakanmasa 4 kitar bas atau 400 ns. Suruhan MOVE.W memerlukan 2 kitar bas atau 800 ns. Suruhan SUBQ.W#1,D1 memakan masa 1 kitar bas = 400 ns. Masa untuk suruhan BNE bergantung kepada sama adacabang diambil, iaitu 10 kitar jika mencabang (n-1 kali), dan 8 kitar jika tidak mencabang (1 kali).

Menggantikan DELAMT dengan n, masa untuk lengah 30 ms = masa untuk MOVE.W + n*[masauntuk SUBQ.W] + [n-1]*[masa untuk BNE diambil] + masa untuk BNE tidak ambil. Ini sama dengan30 = 0.8 + n*0.4 + [n-1]*1 + 0.8. Ini menghasilkan n = (30 - 1.6)/1.4 = 20.29, maka nilai DELAMTditetapkan ke 20. Nilai ini tidak perlu terlalu tepat kerana terdapat banyak punca variasi: jenis suis, umursuis, cara pengguna menekan suis dan sebagainya.

11.5 Pengantaramukaan Papan Kekunci

Papan kekunci14 kerap digunakan di peralatan yang memerlukan input lebih banyak daripada suis biasa.Untuk mengantaramuka papan kekunci, cip 74C922 amat sesuai kerana ia mempunyai litar nyahlantundi dalamnya. Ia boleh disambungkan kepada papan kekunci 4x3 atau 4x4 dan mempunyai output DCBAyang mewakili kedudukan kekunci. Ia mempunyai satu output khas, DAV (data available) yang menjaditinggi apabila sebarang kekunci ditekan bagi memudahkan pengaturcaraan.

Output DCBA yang dikeluarkan oleh cip 74C922 ditunjukkan di bawah. X1 hingga X4 mewakililajur dan Y1 hingga Y4 mewakili baris. Nombor di kekunci selalunya berbeza dengan output yangterhasil. Sebagai contoh, jika kekunci ‘8’ yang disambung pada lajur X2 dan baris Y3 ditekan, outputialah 1001. Suatu jadual penukaran diperlukan untuk mendapatkan kod BCD sebenar.

X1 X2 X4 X4Y1 0000 0001 0010 0011Y2 0100 0101 0110 0111Y3 1000 1001 1010 1011Y4 1100 1101 1110 1111

Subrutin di bawah menunjukkan bagaimana papan kekunci yang terletak di alamat $E100 bolehdibaca. Anggapkan pin DCBA masing-masing disambung ke talian D3-D0 di bas data, dan pin DAV kepin D7. Jika byte di alamat $E1000 dianggap bertanda, ia bernilai positif apabila tiada kekunci ditekan,dan negatif bila ditekan.

;

14keypad

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 184: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

180 Bab 11. Pengantaramukaan Input/Output Asas

Rajah 11.18: Pengantaramukaan dengan papan kekunci.

; RDKEYP: Subrutin bagi membaca papan kekunci di $E100; Kembali dengan kod BCD di D1, bagi input 0-9, A-D; ASCII bagi * dan #.;KEYPAD EQU $E100RDKEYP MOVE.B KEYPAD,D0

BPL RDKEYPAND.W #$F,D0 ; simpan 4 bit terendahLEA KEYLUT,A0MOVE.B (A0,D0.W),D1RTS

KEYLUT DC.B 1,2,3,$A,4,5,6,$B,7,8,9,$C,’*’,0,’#’,$D

11.6 Input/Output Mudah dengan EASy68K

EASy68K mempunyai kemudahan input/output mudah melalui tetingkap perkakasan EASy68K yangditunjukkan lagi sekali dalam Rajah 11.19.

Jadual 11.2 meringkaskan alamat bagi setiap peranti I/O mudah EASy68K:Perkara paling berbeza di antara perkakasan EASy68k dengan perkakasan yang telah ditunjukkan

dalam bab ini ialah logik yang digunakan. Dalam perkakasan sebenar, logik negatif kerap digunakanuntuk mengurangkan komponen logik. Dalam EASy68K, kekangan ini tidak wujud maka logik positifdigunakan untuk semua jenis peranti kecuali suis pushbutton. Gelombang input dari kesemua suis jugaadalah ‘cantik’ dan tidak perlu dinyahlantun.

Satu contoh penggunaan perkakasan EASy68K ialah pembilang yang mengira berapa kali suisditekan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 185: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.6. Input/Output Mudah dengan EASy68K 181

Jadual 11.2: Alamat bagi peranti input/output EASy68K

Alamat Peranti Makna Logik ‘1’$E00000 Pamer 7 segmen digit 1 Segmen Menyala$E00002 Pamer 7 segmen digit 2 Segmen Menyala$E00004 Pamer 7 segmen digit 3 Segmen Menyala$E00006 Pamer 7 segmen digit 4 Segmen Menyala$E00008 Pamer 7 segmen digit 5 Segmen Menyala$E0000A Pamer 7 segmen digit 6 Segmen Menyala$E0000C Pamer 7 segmen digit 7 Segmen Menyala$E0000E Pamer 7 segmen digit 8 Segmen Menyala$E00010 LED LED Menyala$E00012 Suis rocker Suis Tutup$E00014 Suis pushbutton (momentary ON) Suis Buka (tidak ditekan)

;; BILANG.X68;DIGIT7 EQU $E0000CDIGIT8 EQU $E0000ELED EQU $E00010PUSHBTN EQU $E00014

ORG $1000

START CLR.W D7 ; kosongkan pembilangLEA $E00000,A1MOVEP.L D7,(A1) ; padam digit 1-4MOVEP.L D7,8(A1) ; padam digit 5-8LEA LUT,A0

CLR.B D1 ; papar tetingkap perkakasanMOVE.B #32,D0TRAP #15

PAMER MOVE.B D7,LED ; papar pembilang dgn LED

Rajah 11.19: Input/output melalui perkakasan mudah.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 186: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

182 Bab 11. Pengantaramukaan Input/Output Asas

MOVE.W D7,D1LSR.B #4,D1 ; sediakan digit puluhMOVE.B (A0,D1.W),DIGIT7 ; papar digit puluhMOVE.W D7,D0AND.W #%1111,D0 ; sediakan digit saMOVE.B (A0,D0.W),DIGIT8 ; papar digit sa

MOVE.L #1000000,D1 ; lengahkan pameranWAIT SUB.L #1,D1

BNE WAIT

ULANG MOVE.B PUSHBTN,D0 ; tunggu suis ditekanCMP.B #$FF,D0BEQ ULANG

CLR D1MOVE #$10,CCRABCD D1,D7 ; tokok pembilang

BRA PAMER

LUT DC.B $3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$67

END START

Aturcara ini menggunakan satu tugas TRAP #15 yang belum digunakan sebelumnya iaitu membukatetingkap perkakasan secara automatik. Dengan adanya tugas ini, pengguna tidak perlu pergi ke menuuntuk membuka tetingkap setiap kali melaksanakan aturcara. Caranya ialah dengan meletakkan D0 = 0da D1 = 32 sebelum melaksanakan suruhan TRAP #15.

Satu suruhan baru yang diperkenalkan dalam aturcara ini ialah suruhan MOVEP (move peripheral).Suruhan ini mempercepat pemindahan maklumat dari daftar data ke liang-liang periferal yang jarakantara satu sama lain adalah 2 byte. Rajah 11.20 menunjukkan bagaimana MOVEP D7,(A0) mengisikandata ke LED yang terletak bermula di alamat $E000000. Hanya satu mod alamat dibenarkan iaitu daftaralamat tak langsung dengan ofset.

Rajah 11.20: Suruhan MOVEP.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 187: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

11.6. Input/Output Mudah dengan EASy68K 183

Latihan

1. Nyatakan perbezaan skima pemetaan I/O terpeta ingatan berbanding I/O terasing.

2. Apakah kelebihan I/O periferal berbanding I/O mudah?

3. Apakah kelebihan I/O bersiri berbanding I/O selari?

4. Nyatakan perbezaan I/O tinjauan berbanding I/O terpacu sampukan.

5. Tukarkan aturcara EASy68K dalam Seksyen 11.6 supaya membilang modulo 60. Ini bermaknapaparannya ialah 00, 01, ... , 59, 00, 01, ...

6. Tukarkan aturcara EASy68K dalam Seksyen 11.6 supaya menggunakan pembilang perduaan,bukan pembilang BCD. Ini bermakna suruhan untuk menokok D7 ialah ADD bukan suruhanABCD.

7. Tukarkan aturcara EASy68K dalam Seksyen 11.6 supaya memaparkan jumlah saat sejak tengahmalam. Rujuk Jadual 7.1 untuk nilai yang D0 yang diperlukan.

8. Tukarkan aturcara EASy68K dalam Seksyen 11.6 supaya waktu semasa. Tukarkan jumlah saatsejak tengah malam ke bentuk HH:MM:SS.

9. Tukarkan subrutin untuk EASy68K yang memaparkan sebarang nilai dalam D1.L dalam bentukhex di pamer 7 segmen.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 188: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

184 Bab 11. Pengantaramukaan Input/Output Asas

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 189: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Bab 12

Kekecualian & Sampukan

Objektif

• Keadaan pemprosesan

• Mod pengguna dan penyelia

• Suruhan kawalan sistem

• Prosedur pemprosesan kekecualian

• Sampukan

Pengenalan

Mikropemproses 68000 menyediakan mekanisme bagi melindungi operasi sistem apabila berlakusesuatu ralat atau kerosakan yang teruk. Amnya, kekecualian1 ditakrifkan sebagai kejadian yangmengubah perlaksanaan aturcara secara normal. Kekecualian ada yang terjadi disebabkan ralatpengaturcaraan seperti bahagi dengan sifar dan yang disengajakan oleh pengaturcara seperti perangkap.Sampukan2 ialah pemberhentian sementara sesuatu aturcara bagi melayan peranti periferal. Cirisampukan membolehkan sumber-sumber pemproses dioptimumkan. Sampukan boleh dianggap sejeniskekecualian, dan mekanisme bagi menangani sampukan dan kekecualian adalah serupa.

12.1 Mod Penyelia dan Pengguna

Untuk melindungi sistem daripada kerosakan teruk dalam aturcara pengguna, pemproses 68000menentukan dua keadaan keistimewaan atau mod perlaksanaan: pengguna dan penyelia. Perlindungandicapai dengan memberikan hak penggunaan beberapa sumber sistem hanya kepada penyelia. Sistempengendalian beroperasi dalam keadaan penyelia manakala aturcara aplikasi dalam keadaan pengguna.Jadual 13-1 meringkaskan perbezaan kedua-dua mod.

Peralihan dari mod pengguna ke mod penyelia hanya berlaku apabila terjadi kekecualian, sepertisampukan atau melaksanakan suruhan TRAP. Beralih dari mod penyelia ke mod pengguna dilakukanmelalui salah satu daripada lima suruhan yang boleh mengubah bit S dalam SR. Ini ialah MOVE ke SR,ANDI ke SR, EORI ke SR, ORI ke SR dan RTE. Suruhan RTE3 mengembalikan nilai SR ke nilai yangdisimpan dalam tindanan. Jika mod sebelumnya ialah pengguna, pemproses diubah ke mod pengguna.Jika kekecualian berlaku semasa sistem dalam mod penyelia, pemproses kekal dalam mod penyelia.

1exception2interrupt3return from exception

185

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 190: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

186 Bab 12. Kekecualian & Sampukan

Jadual 12.1: Ragam pengguna dibandingkan dengan ragam penyelia.

Ragam Pengguna Ragam PenyeliaKaedah memasuki ragam Padam bit S dalam SR Suruhan TRAP, istimewa,

reset, sampukanOutput FC2 0 1Penunjuk tindanan USP SSPCapaian SR:

baca Keseluruhan SR Keseluruhan SRtulis CCR sahaja Keseluruhan SR

Suruhan yang boleh Kesemuamya. kecuali Kesemuanyadigunakan RESET

RTESTOP #d

ANDI #d,SREORI #d,SRORI #d,SR

MOVE ¡ea¿,SRMOVE USP,AnMOVE An,USP

Beberapa suruhan dikelaskan sebagai suruhan istimewa4 dan hanya boleh dilaksanakan dalamkeadaan penyelia. Sebarang percubaan melaksanakan suruhan-suruhan ini dalam mod penggunamenyebabkan kekecualian perlanggaran keistimewaan.

Mekanisme utama yang membolehkan aturcara pengguna menggunakan sumber sistem ialahsuruhan TRAP (perangkap). Beberapa operasi asas seperti input/output disediakan oleh sistempengoperasian dalam bentuk rutin perangkap. Menerusi TRAP, aturcara pengguna memasuki memasukimod penyelia dengan cara yang terkawal untuk melakukan operasi sistem kemudian kembali ke modpengguna. Operasi ini kerap dipanggil panggilan sistem.

Satu perbezaan kedua-dua mod ialah masing-masing mempunyai penunjuk tindanan sendiri.Pemproses 68000 mempunyai dua penunjuk tindanan iaitu USP5 dan SSP6. Dalam keadaan pengguna,merujuk kepada A7 atau SP menyebabkan USP digunakan. Sebaliknya, SSP digunakan sebagai A7 atauSP dalam keadaan penyelia. Penunjuk tindanan aktif digunakan untuk menyimpan PC secara automatiksemasa panggilan subrutin.

Dalam mod pengguna, aturcara boleh menggunakan suruhan MOVE untuk membaca keseluruhanSR, tetapi hanya boleh menulis ke CCR.

Dengan bantuan litar tambahan, aturcara mod pengguna juga boleh dihalang daripada membacaatau menulis ruang ingatan tertentu. Satu peranti khusus bagi melaksanakan pemisahan ini ialah unitpengurusan ingatan (MMU7). Jika MMU mengesan percubaan dari aturcara pengguna untuk mencapaiingatan yang di luar haknya, suatu kekecualian diberikan. Aturcara penyelia kemudiannya bolehmelakukan tindakan sewajarnya seperti menghentikan perlaksanaan aturcara tersebut.

12.2 Suruhan Kawalan Sistem

Beberapa suruhan 68000 dikhaskan untuk mengawal operasi sistem. Suruhan-suruhan ini dikelaskansebagai istimewa dan hanya boleh dilaksanakan dalam mod penyelia. Sebarang percubaan untuk

4privileged instructions5user stack pointer6supervisor stack pointer7memory management unit

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 191: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.2. Suruhan Kawalan Sistem 187

melaksanakan salah satu suruhan istimewa dalam keadaan pengguna menyebabkan kekecualian. Berikutialah senarai suruhan-suruhan yang disebutkan:

ANDI.W #<data>,SRORI.W #<data>,SREORI.W #<data>,SRMOVE.W <ea>,SRMOVE.L An,USPMOVE.L USP,AnSTOP #<data>RESETRTE

Suruhan logikal ANDI, EORI dan ORI beroperasi seperti suruhan logikal yang diterangkan dalamBab 3 tetapi di sini destinasinya ialah SR, menjadikannya suruhan istimewa. Suruhan MOVE kedalam SR mengubah daftar status secara langsung. Suruhan MOVE dengan USP mengolah daftar USP.Suruhan STOP, RTE dan RESET juga tergolong sebagai suruhan istimewa. Suruhan Olahan USP

Dalam mod penyelia, penunjuk tindanan yang aktif ialah SSP. Penyelia hanya perlu merujuknyasebagai SP atau A7. Jika penyelia ingin mengolah USP bagi pengendalian aturcara-aturcara pengguna,ia perlu merujuknya dengan nama USP. Suruhan istimewa

MOVE.L USP,An

menyalin USP ke daftar alamat An. Suruhan

MOVE.L An,USP

beroperasi sebaliknya dan digunakan untuk mengisikan nilai ke dalam USP.

Suruhan RTE

Sampukan dan kekecualian menyebabkan daftar status 16 bit dan pembilang aturcara 32 bit disimpandi tindanan penyelia untuk merekodkan keadaan aturcara semasa kekecualian berlaku. Suruhan RTEdigunakan untuk memulihara nilai SR dan PC setelah rutin pengendali kekecualian tamat. Dengankata lain, suruhan RTE terletak di hujung rutin pengendali kekecualian sementara suruhan RTS terletakdihujung subrutin. Suruhan RTE juga digunakan untuk memindahkan kawalan ke aturcara penggunasemasa sistem mula-mula dipasang.

Rajah 12.1: Peralihan antara mod pengguna dan penyelia.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 192: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

188 Bab 12. Kekecualian & Sampukan

Suruhan RESET

Suruhan RESET menyebabkan pin RESET* pada cip 68000 diaktifkan selama 124 kitar jam. Talianini biasanya disambungkan kepada kesemua cip periferal dalam sistem, dan menyebabkan kesemuaperanti direset, tanpa menjejaskan pemproses. Suruhan ini boleh dilaksanakan untuk memulihkan sistemdaripada kerosakan terus.

Suruhan STOP

Suruhan STOP menghentikan pemproses 68000. Sebagai contoh, suruhan

STOP #$2700

mengisikan nilai $2700 ke dalam daftar status kemudian menghentikan pemproses. Nilai $2700bermakna T = 0, S = 1, topeng sampukan = 7 dan XNZVC = 00000. Perlaksanaan tidak diteruskansehingga 68000 menerima sampukan yang cukup tinggi keutamaannya, atau isyarat reset.

12.3 Pemprosesan Kekecualian

Kekecualian dijana oleh sebab luar atau dalam pemproses. Kekecualian yang dijana oleh kejadianluar adalah sampukan, ralat bas dan reset. Sampukan adalah permohonan dari peranti periferal untukperhatian pemproses. Ralat bas terjadi apabila isyarat BERR* diaktifkan. Reset berlaku apabila isyaratRESET* diaktifkan.

Kekecualian dalaman dijana oleh suruhan, surihan dan ralat perlaksanaan. Misalnya, suruhan TRAPdan emulator A atau F sentiasa menjana kekecualian manakala TRAPV, CHK, DIVU dan DIVS menjanakekecualian dengan syarat. Kekecualian juga dihasilkan oleh suruhan larangan dan perlanggarankeistimewaan8. Surihan pula menyerupai sampukan yang dihasilkan oleh perlaksanaan setiap suruhan.

Kecuali untuk reset, setiap kekecualian menyebabkan 68000 melakukan kelima-lima langkahberikut:

1. Simpan SR di daftar dalaman

2. Set bit S dan padam bit T di dalam SR. Jika sampukan, topeng sampukan diubah menurut tahapsampukan.

3. Dapatkan nombor vektor untuk kekecualian kemudian darab dengan empat untuk mendapatalamat vektor.

4. Simpan PC dan SR asal disimpan ke tindanan penyelia. Tambahan empat kata disimpan jikakekecualian ialah ralat bas atau ralat alamat.

5. Isikan PC dengan nilai baru yang dibaca dari alamat vektor yang dikira dalam langkah 3.

Langkah-langkah di atas dikenali juga sebagai pemprosesan kekecualian9. Maklumat yang disimpandalam tindanan penyelia ialah bergantung kepada jenis kekecualian. Maklumat ini dikenali sebagaibingkai tindanan10. Rujuk Rajah 14.3 untuk melihat format bingkai tindanan.

Untuk ralat bas dan ralat alamat, nilai PC tidak boleh dijangka. Lebih banyak maklumat disimpandi tindanan termasuk kata pertama suruhan yang gagal dan jenis kitar bas yang menyebabkan ralat. Inimembolehkan penentuan sebab sebenar kegagalan.

Suruhan terakhir dalam rutin pengelola kekecualian ialah suruhan RTE supaya pemproses dalamkembali ke tugas yang dibuat sebelum kekecualian.

8privilege violation9exception processing

10stack frame

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 193: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.3. Pemprosesan Kekecualian 189

Rajah 12.2: Turutan pemprosesan kekecualian.

Daftar status

Pembilang aturcara (atas)

Pembilang aturcara (bawah)

Alamat

SSP-6

SSP-4

SSP-2

SSPSSP Sebelum kekecualian

SSP Sebelum kekecualian

(a) Bingkai tindanan bagi kesemua kekecualian kecuali ralat bas dan ralat alamat.

Daftar status

Pembilang aturcara (atas)

Pembilang aturcara (bawah)

SSP-8

SSP-6

SSP-4

SSP-2

SSPSSP Sebelum kekecualian

SSP Sebelum kekecualian

Daftar suruhan

Alamat capaian (bawah)

Alamat capaian (atas)

Jenis capaian ingatan

7 kata

SSP-10

SSP-12

SSP-14

Alamat

(b) Bingkai tindanan bagi ralat bas dan ralat alamat.

Rajah 12.3: Format bingkai tindanan.

Vektor Sampukan

Vektor sampukan11 ialah lokasi ingatan yang dibaca oleh pemproses bagi mendapat alamat suatu rutinbagi mengelolakan suatu sampukan. Setiap kekecualian dikaitkan dengan satu rutin pengelola dan vektor

11interrupt vector

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 194: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

190 Bab 12. Kekecualian & Sampukan

Jadual 12.2: Jadual vektor.

Nombor Alamat FungsiVektor Perenambelasan0 000 Reset: SSP awal

004 Reset: PC awal2 008 Ralat bas3 00C Ralat alamat4 010 Suruhan Larangan5 014 Bahagi dengan Sifar6 018 Suruhan CHK7 01C Suruhan TRAPV8 020 Perlanggaran Keistimewaan9 024 Surih10 028 Emulator Baris 101011 02C Emulator Baris 1111

12-14 030-034 (Dikhaskan)15 03C Sampukan Tidak Dimemulakan

16-23 040-05C (Dikhaskan)24 060 Sampukan Rambang

25-31 064-7C Sampukan Autovektor Tahap 1-732-47 080-0BC Suruhan TRAP #0-TRAP #1548-63 0C0-0FF (Dikhaskan)64-255 100-3FC 192 Vektor Sampukan Pengguna

tersendiri. Kesemua vektor sampukan panjangnya satu kata panjang (32 bit), kecuali vektor reset yangpanjangnya empat kata.

Terdapat 255 nombor vektor berbeza. Setiap vektor mewakili sejenis kekecualian atau sampukan.Vector 0 hingga 63 dijana dari dalam 68000, manakala vector 64 hingga 255 diberi oleh peranti periferalsemasa sampukan. Vektor 1 tidak wujud kerana operasi reset memungut dua kata panjang berturut-turut.Jadual 14.2 meringkaskan jadual vektor.

Daripada ruang ingatan 68000 yang sepanjang 16 megabyte, 1K pertama ($000000 hingga $0003FF)dikhususkan untuk vektor kekecualian. Perhatikan yang banyak nombor vektor disimpan oleh Motorolauntuk pembaikan masa akan datang.

Kekecualian Berganda

Kekecualian diatur supaya sebarang keadaan yang tidak normal dikelolakan secara teratur dan bolehdijangka. Salah satu kemungkinan ialah kehadiran kekecualian semasa kekecualian sebelumnya sedangdiproses. Untuk mengendalikan keadaan ini, kekecualian dikumpulkan ke dalam tiga kelompok: 0,1, dan 2. Kekecualian kumpulan 0 diproses sebelum kekecualian kumpulan 1 dan 2. Kekecualiankumpulan 1 diproses sebelum kekecualian kumpulan 2. Agihan kumpulan-kumpulan ini ditunjukkandalam Jadual 14.3. Jadual ini tidak sahaja menunjukkan kumpulan kekecualian tetapi juga keutamaandalam sesuatu kumpulan.

Perbezaan keutamaan antara dua kekecualian menentukan yang mana satu dipilih apabila kedua-duanya berlaku serentak.

12.4 Kekecualian yang Disebabkan Perlaksanaan Aturcara

Perlaksanaan setiap suruhan boleh mengakibatkan kekecualian yang dinamai perangkap. Ia disebabkanoleh perlaksanaan aturcara secara normal. Suruhan TRAP digunakan untuk memindahkan kawalan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 195: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.4. Kekecualian yang Disebabkan Perlaksanaan Aturcara 191

Jadual 12.3: Kategori kekecualian.

Kumpulan Kekecualian Pemprosesan

0Reset

〉Selepas tamat kitar jamRalat alamatRalat bas

1

Suruhan larangan 〉Selepas tamat kitar basPerlanggaran keistimewaanSurih 〉Selepas tamat kitar suruhanSampukan

2TRAP, TRAPV, CHK 〉Semasa kitar suruhanBahagi dengan sifar

Jadual 12.4: Perbezaan perangkap dan subrutin.

Perangkap SubrutinDimulakan dari mod pengguna atau penyelia mod pengguna atau penyeliaDilaksanakan dalam mod penyelia mod pengguna atau penyeliaDaftar yang disimpan PC dan SR PCDaftar disimpan di tindanan sistem tindanan sistem atau penggunaRutin ditamatkan oleh RTE RTSMod selepasnya mod pengguna atau penyelia mod pengguna atau penyelia

dari aturcara pengguna ke aturcara penyelia. Perangkap-perangkap yang disebabkan oleh suruhanDIVS/DIVU, TRAPV atau CHK menandakan ralat aturcara. Dua perangkap emulator membolahkanrekabentuk suruhan baru bagi mengembangkan set suruhan.

Turutan pemprosesan setiap jenis perangkap adalah sama. Jika kekecualian dikesan, pemproses akanmelalui empat langkah yang diterangkan dalam seksyen sebelumnya.

Jika kawalan dikembalikan ke aturcara yang menyebabkan kekecualian, rutin perangkap melak-sanakan suruhan RTE yang memulihara nilai SR dan PC dari tindanan. Untuk suruhan emulator, nilaiPC yang disimpan menuding ke suruhan yang menyebabkan kekecualian. Untuk kembali ke suruhanseterusnya, nilai PC yang terdapat dalam tindanan perlu diubah oleh rutin yang mengendalikan emulator.

Suruhan TRAP

Suruhan TRAP (perangkap) menjana kekecualian daripada dalam aturcara. Ia dikenali juga sebagaipanggilan sistem atau sampukan perisian. Format suruhan ini ialah

TRAP #<nombor>

Perangkap membolehkan sistem menyediakan rutin utiliti yang dipanggil secara konsisten. Pem-proses 68000 menyediakan 16 suruhan berbentuk TRAP #<nombor> yang mana <nombor> ialah nilai0 hingga 15. Perlaksanaan TRAP #0 memanggil pengendali TRAP #0, dan seterusnya.

Penggunaan TRAP membolehkan aturcara yang sama dilaksanakan ke sistem yang mempunyaiperkakasan yang sedikit berlainan. Untuk memanfaatkan suruhan ini, kedua-dua sistem perlu menye-diakan rutin pengendali yang khusus untuk perkakasan yang terdapat dalam sistem masing-masing.Misalnya, TRAP #0 boleh ditetapkan untuk operasi baca aksara dan TRAP #1 untuk tulis aksara. Dalamsistem A, operasi input/output boleh dilakukan menerusi papan kekunci dan skrin manakala untuk sistemB, operasi baca dilakukan menerusi antaramuka bersiri. Penggunaan TRAP memudahkan pengaturcarakerana tidak mengetahui perkakasan yang ada dengan terlalu terperinci.

Komputer papan tunggal Motorola ECB68K menyediakan pengendali TRAP #14 untuk melakukantugas-tugas input/output asas. Pengendali perangkap ini mempunyai pelbagai fungsi yang ditentukan

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 196: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

192 Bab 12. Kekecualian & Sampukan

Jadual 12.5: Vektor untuk Suruhan TRAP

Suruhan Nombor Vektor Alamat VektorTRAP #0 32 $000080TRAP #1 33 $000084TRAP #2 34 $000088TRAP #3 35 $00008CTRAP #4 36 $000090TRAP #5 37 $000094TRAP #6 38 $000098TRAP #7 39 $00009CTRAP #8 40 $0000A0TRAP #9 41 $0000A4

TRAP #10 42 $0000A8TRAP #11 43 $0000ACTRAP #12 44 $0000B0TRAP #13 45 $0000B4TRAP #14 46 $0000B8TRAP #15 47 $0000BC

oleh byte terendah D7 semasa perangkap dilaksanakan. Sebelum TRAP dilaksanakan, pengaturcaramesti mengisi kod fungsi dalam byte terendah D7. Contoh untuk output 1 aksara ASCII:

MOVE.B #248,D7 ;ISI KOD FUNGSI DALAM D7TRAP #14 ;JALANKAN PENGENDALI TRAP \#14

Sistem yang sama digunakan dalam simulator EASy68k.

Suruhan TRAPV

Melaksanakan suruhan TRAPV12 semasa bendera V dalam CCR bernilai 1 akan menjana kekecualianTRAPV. Jika V bernilai 0, suruhan ini tiada kesan kecuali mengemaskini PC ke suruhan berikutnya.Berikut adalah contoh penggunaannya

ADD.B D0,D1TRAPV

Suruhan TRAPV memanggil sistem pengoperasian hanya jika limpahan berlaku. Meletakkan suruhanini selepas suruhan ADD memastikan hasil tambah yang melimpah dikesan dengan cara yang teratur.

Suruhan CHK

Suruhan CHK13 juga beroperasi secara bersyarat. Ia menyemak nilai dalam daftar data dan menye-babkan perangkap jika daftar Dn mengandungi nilai negatif atau melebihi kendalian suruhan. Hanyakata rendah disemak. Contohnya suruhan CHK #$300,D7 membandingkan daftar D7 dengan $300. Jikakata rendah D7 positif dan kurang daripada $300, tiada kekecualian dijana. Bahagi dengan Sifar

Kekecualian ini berlaku apabila suruhan DIVU dan DIVS cuba membahagi sebarang nilai dengansifar. Ini boleh berlaku apabila pengguna memasukkan data salah. Lihat contoh berikut:

12trap on overflow13check register against bounds

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 197: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.4. Kekecualian yang Disebabkan Perlaksanaan Aturcara 193

JSR BACA ;DAPATKAN NILAI DIBAHAGIMOVE.W D0,D1 ;INPUT DALAM D0EXT.L D1JSR BACA ;DAPATKAN NILAI PEMBAHAGIDIVS D0,D1 ;LAKUKANNYA!TRAPV

Turutan di atas mungkin tiada masalah untuk kebanyakan kes tetapi untuk pembahagian terdapatdua kemungkinan ralat iaitu keadaan limpahan dan bahagi dengan sifar. Dua pengendali ralat diperlukaniaitu pengendali TRAPV dan pengendali pembahagian dengan sifar.

Emulator A dan F

Nilai perenambelasan $A atau $F dalam nibel teratas kata operasi tidak melambangkan sebarang opkodsah. Kedua-dua nilai ini mewakili kes khas suruhan larangan yang dipanggil kekecualian emulator. Iajuga dikenali sebagai perangkap suruhan belum dilaksanakan14. Kekecualian emulator membolehkansuruhan baru ditambah kepada set suruhan yang sedia ada.

Opkod $AXXX dikenali sebagai perangkap talian A (1010). Nilai XXX boleh ditakrif olehpengguna dan merupakan parameter kepada rutin pengendali emulator. Ia mempunyai nombor vektor10 dan alamat pengendali terletak dalam alamat $28.

Opkod $FXXX ialah perangkap talian F (1111) dan ia mempunyai nombor vektor 11. Alamatpengendali emulator terletak dalam alamat $2C.

Komputer Macintosh dengan pemproses famili 68k menggunakan Emulator A untuk menyediakanpustaka fungsi kepada pengaturcara. Rutin-rutin ini terletak di dalam ROM yang secara keseluruhannyadinamai Macintosh Toolbox. Terdapat lebih daripada 600 subrutin dengan pelbagai tugas sepertimemaparkan objek di skrin, mencapai cakera, menguruskan ingatan dan menggunakan ciri-cirimultimedia. Untuk menggunakan kesemua subrutin ini, pengaturcara perlu merujuk set buku InsideMacintosh. Salah satu suruhan yang kerap digunakan ialah $A9C8 yang membunyikan System Beep diMacintosh. Untuk menyebabkan perangkap ini, perintah penghimpun berikut disisipkan dalam aturcaradi celah-celah suruhan biasa.

DC.W $A9C8

$AXXXN

N+2

SR SP

N

(a) Sebelum maklumat diambil.

SR$AXXX

$AXXX

N+2 A0

D0

N

N+2

SP

N+2

(b) Selepas maklumat diambil.

Rajah 12.4: Mengambil parameter semasa kekecualian emulator.

Dalam pemproses MC68020 hingga ke MC68060, suruhan talian F melaksanakan suruhan ko-pemproses terutama bagi kawalan unit titik apung.

14unimplemented instruction trap

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 198: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

194 Bab 12. Kekecualian & Sampukan

Apabila perangkap talian A atau F terjadi, nilai PC menunjuk ke suruhan $AXXX atau $FXXX,bukan kepada suruhan berikutnya. Oleh itu, parameter suruhan boleh dicapai dengan turutan berikut:

MOVEA.L 2(SP),A0 ;ambil alamat pulangMOVE.W (A0)+,D0 ;ambil opkod \$AXXXMOVE.L A0,2(SP) ;tunjuk ke suruhan berikut

Rujuk 14.4 untuk melihat gambaran bagaimana parameter dipungut dari tindanan semasa di dalampengendali emulator.

Kekecualian Surih

Untuk membantu pembangunan aturcara, pemproses 68000 mempunyai suatu kemudahan bagi menyurihperlaksanaan suruhan. Apabila surihan dibolehkan, suatu kekecualian berlaku selepas setiap suruhan.Oleh itu, aturcara penyahpepijat boleh mengawas perlaksanaan aturcara yang sedang diuji.

Kemudahan surihan dikawal oleh bit T dalam SR. Jika T=0, surihan dilumpuhkan dan suruhan-suruhan dilaksanakan satu persatu secara normal. Jika T=1, kekecualian surihan dijana selepas setiapsuruhan. Bit T dipadam sebaik sahaja kekecualian berlaku jadi surihan tidak berlaku di dalam rutinkekecualian surihan. Apabila rutin ditamatkan, bit T dikembalikan ke nilai asal. Ini menyebabkan CPUmenjana kekecualian surih selepas suruhan berikutnya dilaksanakan.

Untuk menyurih aturcara pengguna, bit T perlu diubah semasa dalam mod pengguna. Agak sukarkerana SR tidak boleh diubah semasa dalam mod pengguna. Oleh itu pengguna perlu memanggilsubrutin OS (seperti melalui suruhan TRAP atau perangkap talian A). Pengendali perangkap hanyamempunyai dua suruhan:

ORI.W #$8000,(SP)RTE

Di sini suruhan ORI memberikan 1 kepada bendera T yang terletak dalam tindanan. Apabila kembalike aturcara pengguna, fungsi surih telahpun dibolehkan.

Kemudahan surih biasanya memaparkan isi kesemua daftar di CRT. Malangnya, jika setiap suruhandisurih, ini menghasilkan output yang melambak-lambak. Lebih praktikal : menyurih suruhan yangberlaksana di alamat tertentu (spt titik henti).

12.5 Keadaan Ralat yang Menyebabkan Perangkap

Pemproses 68000 direka untuk melindungi sistem daripada kerosakan yang boleh menyebabkanoperasi yang tidak menentu. Semasa aturcara sedang dibangunkan, perangkap perlanggaran keistime-waan, suruhan larangan dan ralat alamat kerap terjadi. Ralat bas dan keadaan terhenti menandakankerosakan perkakasan. Kerosakan sedemikian jarangkali dapat dipulihkan selagi kesilapan aturcara atauperkakasan belum dibaiki.

Suruhan Larangan

Apabila 68000 memungut suatu opkod semasa kitar pungut dan mendapati ia tidak padan dengansebarang opkod sah dalam set suruhan, pemproses menjana kekecualian suruhan larangan. Kekecualianini melindungi sistem dari terkandas jika pemproses melompat ke kawasan data secara tidak sengaja.

Terdapat opkod yang tidak difahami oleh 68000 tetapi merupakan opkod sah dalam pemproses yanglebih tinggi kerana suruhan-suruhan baru ditambah dalam setiap pembaikan senibina 68000.

Tiga pola bit dijamin menyebabkan kekecualian suruhan larangan dalam kesemua pemproses siri68000. Pola ini ialah $4AFA, $4AFB dan $4AFC. Dua pola pertama dikhaskan untuk produk dariMotorola manakala pola $4AFC boleh digunakan oleh pengguna untuk tujuan pengujian. Pola ini bolehdidapati melalui suruhan ILLEGAL.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 199: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.5. Keadaan Ralat yang Menyebabkan Perangkap 195

Perlanggaran Keistimewaan

Untuk mewujudkan keselamatan kepada sistem, aturcara pengguna tidak dibenarkan melaksanakansuruhan kawalan sistem. Jika aturcara pengguna cuba melaksanakan suruhan istimewa, kekecualianperlanggaran keistimewaan dihasilkan.

Kewujudan kekecualian ini memberitahu sistem pengoperasian bahawa terdapat kesilapan pengatur-caraan dalam aturcara atau pengguna sedang sengaja mengganggu operasi sistem. Aturcara penggunaboleh ditamatkan jika penyelia memutuskan suruhan tersebut memudaratkan keseluruhan sistem.

Ralat Alamat

Ralat alamat berlaku bila pemproses mencapai kata atau kata panjang di alamat ganjil. Apabila ralatalamat berlaku, kitar bas ditamatkan dan pemprosesan kekecualian ralat alamat dimulakan. Turutanpemprosesan kekecualian adalah sama dengan kekecualian ralat bas, termasuk maklumat yang disimpandi tindanan sistem.

Ralat alamat biasanya disebabkan nilai yang tidak sah dalam daftar alamat. Turutan berikut akanmenyebabkan ralat alamat:

MOVEA.L #$1000,A1 ; tiada masalah pada awalnyaMOVE.B (A1)+,D7 ; daftar alamat menjadi ganjilMOVE.W (A1),D6 ; ralat alamat sebab daftar alamat ganjil

Suruhan terakhir di atas mengakibatkan ralat alamat. Semasa suruhan MOVE.W dilaksanakan, nilai A1adalah ganjil setelah diubah oleh suruhan sebelumnya.

Ralat Bas

Kekecualian ralat bas disebabkan oleh kegagalan sistem menyempurnakan kitar bas. Dalam keadaannormal, kitar bas disempurnakan apabila pemproses menerima isyarat DTACK* atau VPA*. Jika salahsatu pun tidak diterima disebabkan masalah perkakasan, pemproses akan tergantung iaitu menunggusampai bila-bila. Kaedah yang lebih baik ialah menambah suatu litar bantuan yang menjana isyaratBERR* apabila pemproses telah menunggu terlalu lama. Kitar bas semasa dibatalkan dan pemprosesterus melakukan pemprosesan kekecualian. Rajah 14.5 menunjukkan tiga isyarat yang patut diterimaoleh pemproses setiap kitar bas.

Antara sebab-sebab ralat bas adalah:

• Capaian ingatan yang salah cubaan mencapai alamat yang tiada peranti atau cubaan menulis keROM

• Perlanggaran perlindungan ingatan dalam sistem pengoperasian multipengguna dan multiaturcaraseperti UNIX, ia boleh berlaku apabila aturcara cuba mencapai ruang ingatan aturcara lain ataupengguna lain. Ciri ini memerlukan bantuan cip unit pengurusan ingatan (MMU).

• Capaian ke ingatan yang rosak litar pengesan ralat ingatan boleh membantu pemproses mengelakdaripada menggunakan data yang salah

Lebih banyak maklumat ditindan semasa ralat bas dan ralat alamat berbanding kekecualian lain.Bingkai tindanan mengandungi tujuh kata. Ini membolehkan jenis ralat ditentukan supaya kerosakandapat dipulihkan. Rujuk Rajah 14.3.

Jika ralat bas berlaku semasa memproses kekecualian ralat bas, ralat alamat atau reset, pemprosesdihentikan. Ini memudahkan kerosakan dikesan dan pemproses mengasingkan dirinya daripada basuntuk mengelakkan kandungan ingatan daripada diubah.

Nama lain bagi litar mengesan ralat bas ialah watchdog timer, seperti yang diterangkan dalam Bab10. Jika aturcara mencapai alamat yang tiada ingatan atau peranti antaramuka, DTACK* tidak akansampai. Selepas menunggu beberapa lama, katakan 40 kitar jam, watchdog timer mengaktifkan BERR*dan memulakan kekecualian ralat bas.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 200: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

196 Bab 12. Kekecualian & Sampukan

Rajah 12.5: BERR* merupakan jalan terakhir bagi mengelakkan pemproses tergantung.

Gelinciran Bas Kembar

Jika ralat bas atau ralat alamat berlaku semasa memproses ralat alamat, ralat bas atau reset, pemprosesdihentikan. Ralat berganda ini dinamai gelinciran bas kembar dan menyebabkan pemproses memasukikeadaan terhenti serta mengaktifkan isyarat HALT*. Cara pemulihan pemproses yang terhenti hanyalahdengan mengaktifkan isyarat RESET* dari luar.

12.6 Reset dan Pememulaan Sistem

Apabila sistem mikrokomputer dipasangkan, beberapa langkah berlaku untuk memulakan operasi sistemsecara teratur dan seterusnya melaksanakan suatu aturcara. Semasa perlaksanaan aturcara, jika sistemterkandas semasa disebabkan ralat perkakasan atau perisian yang tidak boleh dipulihkan, sistem perludireset dan turutan reset baru dimulakan. Pemproses juga boleh mereset peranti luar jika terdapatkerosakan dalam peranti antaramuka.

Turutan pememulaan sistem digunakan bagi meletakkan sistem dalam keadaan tertentu sebelumsebarang aturcara aplikasi dilaksanakan. Ia bukan sahaja memulakan data yang digunakan dalam sistemtetapi boleh menyebabkan pengisian sistem pengendalian daripada peranti luar seperti cakera keras.

Kekecualian reset ialah kekecualian pada tahap tertinggi dan dimulakan apabila isyarat RESETdiaktifkan. Pemprosesan kekecualian reset dilakukan semasa mula-mula menghidupkan sistem dansemasa memulihkan sistem dalam kerosakan teruk. Disebabkan isi daftar-daftar tidak lagi dianggapsah, terutama SSP, PC dan SR tidak disimpan. Alamat yang terkandung dalam dua kata pertama dalamvektor kekecualian reset dipungut menjadi SSP awal. Alamat dalam dua kata terakhir vektor kekecualianreset dipungut menjadi PC awal. Akhirnya, perlaksanaan aturcara dimulakan di alamat yang ditunjukkanoleh PC. Nilai ini sepatutnya menuding ke power-up/restart code.

Selepas reset dikesan, 68000 mengisi SR dengan $2700 (S=1, T=0, dan topeng sampukan = tahap7). Kemudian SSP diisi dengan kata panjang di alamat $000000 dan PC diisi dengan kata panjang dialamat $000004.

Jika kekecualian reset berlaku ketika sebarang pemprosesan, pemprosesan itu ditamatkan dan tidakakan disambung semula. (Tidak boleh kembali ke aturcara asal selepas reset.)

Kekecualian reset tidak dijana secara automatik semasa pemproses mula2 hidup. Perkakasan luarmesti membumikan pin RESET* dan HALT* selama tidak kurang 100 ms.

Jika ralat bas berlaku semasa memproses kekecualian ini, gelinciran bas kembar terjadi danpemproses dihentikan.

Walaupun SSP dimemulakan semasa reset, USP tidak sedangkan USP ialah penuding tindanan aktifdalam mod penyelia. Oleh itu, USP perlu diisi semasa beralih daripada ragam penyelia ke ragampengguna.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 201: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.6. Reset dan Pememulaan Sistem 197

MULA

S ← 1T ← 0

I2I1I0 ← 7

Pungut vektor 0 Ralatbas?

Ralatbas?

SSP ← Kandungan

vektor 0

Pungut vektor 1

PC ← Kandungan

vektor 1

TAMAT

Ralat bas kembar

TAMAT

Ya

Ya

Tidak

Tidak

Rajah 12.6: Turutan pememulaan sistem.

Jadual 12.6: Contoh prosedur pememulaan sistem.

Operasi KomenMemulakan alamat untuk vektor Lokasi $0008-$03FCIsikan sistem pengendalian Cari di cakera kerasMemulakan lokasi ingatan kepunyaan penyelia Jika perluMemulakan kesemua peranti periferal Suruhan RESET untuk semua periferalMemulakan USP (USP) dasar tindanan penggunaLetak alamat permulaan aturcara pengguna ((SSP)) permulaan aturcaraLetak status untuk aturcara pengguna ((SSP)) daftar status penggunaPindah kawalan ke aturcara pengguna RTE

Gunakan suruhan MOVE An,USP untuk mengisi USP semasa dalam ragam penyelia. Berikut ialahcontoh bagaimana aturcara pengguna boleh dilaksanakan dari ragam penyelia.

MOVEA.L #USERSTK,A0 ; ISI NILAI USP AWALMOVE.L A0,USP ; SALIN KE USPMOVE.L #MULA,-(SP) ; PC AWAL UNTUK PENGGUNAMOVE.W #0,-(SP) ; SR AWALRTE ; MULAKAN ATURCARA PENGGUNA

Dalam contoh di atas, nilai awal SR bagi pengguna ialah 0 yang bererti:

S=0 ragam penggunaT=0 tiada surihanI=000 benarkan kesemua sampukanCCR=00000 padam semua bendera

Jadual 14.6 menunjukkan satu contoh pememulaan sistem yang lebih kompleks melibatkan suatu sistemdengan peranti cakera dan sistem pengendalian yang lengkap.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 202: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

198 Bab 12. Kekecualian & Sampukan

Jadual 12.7: Kaitan topeng sampukan dengan sampukan yang dibenarkan.

Topeng sampukan Tahap sampukan dibenarkan(I2I1I0) di IPL2*, IPL1*, IPL0*

000 1-7001 2-7010 3-7011 4-7100 5-7101 6-7110 7111 7

12.7 Sampukan

Sampukan merupakan permohonan perkhidmatan oleh periferal. Ia membolehkan pemproses digunakandengan lebih cekap kerana ia membolehkan pemproses melakukan kerja-kerja yang lebih pentingsementara menunggu periferal sedia.

Utama

ISR

Utama Utama

ISR

Rajah 12.7: Perlaksanaan aturcara tanpa dan dengan sampukan.

Peranti luar memberi isyarat untuk perhatian dengan meletakkan kod 3 bit di input permohonansampukan IPL0*, IPL1* dan IPL2*. Pemproses kemudiannya menghentikan kerja yang sedangdilakukan untuk memberi perhatian kepada peranti periferal. Untuk memberi khidmat kepada peranti,pemproses melaksanakan rutin khidmat sampukan (ISR15). Setelah ISR ditamatkan, aturcara utamadisambung semula.

Kod tahap 7 menyatakan keutamaan tertinggi, tahap 1 terendah dan tahap 0 keadaan biasa tanpasampukan. Sama ada sampukan dilihat bergantung kepada bit I2I1I0 dalam SR.

76543210

A2A1A0

IPL2*IPL1*IPL0*

INT7*INT6*INT5*INT4*INT3*INT2*INT1*+5 V

74LS148

68000

Rajah 12.8: Pengekod keutamaan sampukan.

15interrupt service routine

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 203: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.8. Kitar Akuan Sampukan 199

12.8 Kitar Akuan Sampukan

Kitar akuan sampukan16 atau kitar IACK ialah fasa setelah pemproses bersetuju melayan sesuatusampukan. Pemproses memulakan pemprosesan kekecualian sama seperti kekecualian lain. Bezanya:

1. Bit topeng sampukan dalam SR diubah kepada nilai sampukan yang sedang diproses. Inibermakna sampukan yang sedang diproses tidak boleh disampuk kecuali sampukan baru mem-punyai keutamaan lebih tinggi.

2. Selepas pemproses menyimpan SR dan PC di tindanan, ia melaksanakan kitar IACK.

Semasa kitar IACK, 68000 mendapatkan nombor vektor daripada peranti penyampuk. Kitar IACKdikenali oleh peranti luar dengan kod 111 pada FC2, FC1 dan FC0 dan tahap sampukan di IPL2/1/0dikeluarkan semula di A3, A2 dan A1.

Setelah sampukan diproses, RTE akan mengembalikan SR lama (seterusnya topeng sampukan lamadikembalikan).

IACK7*IACK6*IACK5*IACK4*IACK3*IACK2*IACK1*

76543210

A2A1A0

A3A2A1

74LS138

68000

E1

E2A

E2B

+5 VFC0FC1FC2

AS*

Rajah 12.9: Penyahkod kitar akuan sampukan.

12.9 Sampukan Tervektor

Ada 3 pilihan untuk peranti luar membalas kitar IACK iaitu dengan mengaktifkan isyarat DTACK*,VPA* atau BERR*. Jika peranti berupaya memberikan nombor vektor, ia meletakkan nombor vektor diD7-D0 serta memberikan DTACK* dan menyebabkan kitar IACK tamat. Ini ialah sampukan tervektor.

Setelah periferal memberi nombor vektor, pemproses mendarabnya dengan 4 untuk merujuk jadualvektor. Sebenarnya, sebarang nilai 8 bit boleh diberi, tetapi yang disyorkan ialah vektor pengguna iaitu64-255 (sejumlah 192 vektor).

Kesemua serpihan periferal siri 68000 (spt PI/T 68230 dan DUART 68681) mempunyai daftar vektorsampukan (IVR17) yang mengandungi nombor vektor untuk dikeluarkan semasa kitar IACK.

Semasa reset, IVR mengandungi $0F. Jika IVR tidak diubah dengan nilai lain, nilai $0F diletak dibas data semasa kitar IACK, bersamaan dengan kekecualian vektor sampukan belum dimemulakan.

Kaedah sampukan tervektor pemproses 68000 memberikan keupayaan tinggi kepada sistem keranasesuatu peranti boleh memberikan nilai vektor yang berbeza bergantung kepada operasi yang dikehen-daki. Contohnya, peranti antaramuka selari/pemasa MC68230 mempunyai dua IVR, satu untuk liangselari dan satu untuk pemasa. Jika antaramuka selari atau pemasa perlukan perhatian, kedua-duanyamemberikan sampukan melalui talian sampukan yang sama. Semasa kitar akuan sampukan, bahagianyang berkenaan akan mengeluarkan nilai IVRnya dan pemproses terus memberi khidmat kepada seksyen

16interrupt acknowledge cycle17interrupt vector register

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 204: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

200 Bab 12. Kekecualian & Sampukan

68000Serpihan I/O

Pengekod 3-ke-8

FC0

FC1

FC2 A3A2A1

CBA

IACK1

IACK2

IACK3

IACK4

IACK5

IACK6

IACK7

IACK

IPL0IPL1IPL2

Pengekod keutamaan

IRQ

1IR

Q2

IRQ

3IR

Q4

IRQ

5IR

Q6

IRQ

7

IRQDaftar Vektor Sam

pukan

Nom

bor vektor

D0-D

7

123a3b

45

E1E2

Nom

bor vektor

DTAC

KD

TACK

0

Jadual Vektor

255

000000000004000008

0003FC

12313200007C000080

128129

000200000204

67

Alamat R

utin Servis Sam

pukan

RTE

Laksanakan R

utin Servis Sam

pukan hingga tam

at

8

Nom

bor vektor

Mem

ory Address

Rajah

12.10:Pem

prosesansam

pukan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 205: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

12.9. Sampukan Tervektor 201

Jadual 12.8: Vektor untuk Sampukan Autovektor

Sampukan Nombor Vektor Alamat VektorAutovektor Tahap 1 25 $000064Autovektor Tahap 2 26 $000068Autovektor Tahap 3 27 $00006CAutovektor Tahap 4 28 $000070Autovektor Tahap 5 29 $000074Autovektor Tahap 6 30 $000078Autovektor Tahap 7 31 $00007C

berkenaan sahaja. Pemproses tidak perlu menyemak siapa di antara kedua-duanya yang menyampuk danini menjimatkan masa. Selain menjimatkan mas, ciri ini membolehkan lebih daripada 7 peranti periferaldisambungkan ke pemproses, suatu keperluan dalam sistem-sistem besar.

Sampukan AutoVektor

Periferal siri pemproses famili 6800 tidak berupaya membekal nombor vektor seperti yang bolehdilakukan oleh periferal famili 68000. Namun begitu, penggunaannya menjimatkan kos dan bolehmemudahkan rekabentuk litar. Pereka litar boleh menambah litar luar yang membekal nombor vektortetapi ini tidak munasabah kerana ini menjadikan litar kompleks.

Untuk periferal 6800, kaedah sampukan yang boleh diguna ialah sampukan autovektor. Dalamsampukan autovektor, nombor vektor dijana secara automatik bergantung tahap sampukan. Denganmemberi VPA* semasa kitar IACK, pemproses menganggap periferal memohon sampukan autovektor.Pemproses 68000 akan menjana nombor vektor 25 hingga 31 bersamaan tahap sampukan IRQ1*-IRQ7*.

Contohnya, jika sampukan dipohon melalui IRQ2* diikuti oleh VPA* semasa kitar IACK, nomborvektor 26 dijana oleh 68000. Alamat rutin pengendali sampukan dibaca daripada alamat 26*4 =$000068.

Jika lebih daripada satu permohonan sampukan autovektor dilakukan pada talian yang samaserentak, 68000 tak dapat membezakan mana satukah peranti penyampuk. Pemproses mesti meninjaudaftar status dalam setiap periferal (pada tahap sampukan yang sama) untuk menentukan puncasampukan.

Jika DTACK* atau VPA* tidak dikembalikan semasa kitar IACK, isyarat BERR* mesti diberi untukmemaksa kekecualian sampukan rambang.

Sampukan Rambang18

Semasa kitar akuan sampukan, jika tiada peranti yang mengaktifkan DTACK* atau VPA*, suatulitar sepatutnya mengaktifkan BERR* untuk menamatkan penantian vektor. Ralat bas ini berbezadengan ralat bas biasa. Selepas kekecualian ini dikesan, pemproses menjalankan turutan pemprosesankekecualian biasa termasuk menindan hanya PC dan SR. Sampukan rambang boleh terjadi akibatgangguan elektrikal.

Sampukan Tidak Dimemulakan19

Semasa kitar akuan sampukan, peranti yang menyampuk menyediakan suatu nombor vektor danmengaktifkan DTACK*, VPA* atau BERR*. Peranti periferal dari Motorola (dan yang menurutpiawaiannya) mengandungi daftar vektor sampukan (IVR20) yang diisikan dengan nombor vektor yang

18spurious interrupt19uninitialized interrupt20interrupt vector register

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 206: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

202 Bab 12. Kekecualian & Sampukan

dikehendaki. Jika daftar ini tidak dimemulakan, ia mengandungi nilai 15 bersamaan dengan vektorsampukan tidak dimemulakan. Apabila peranti periferal menyerahkan nombor ini kerana IVR tidakdiisi dengan nilai lain menyediakan kaedah yang seragam untuk memulihkan sistem daripada ralatpengaturcaraan.

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund
Page 207: Sistem Terbenam Berasaskan Mikropemproses 68000 · 11.5 Pengantaramukaan Papan ... Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar ... Peranti I/O selari

Indeks

ASCII, 90

daftarCCR, 14SR, 15

DMA, 138DRAM, 151

EASy68K, 33, 40, 41emulator, 34EPROM, 33

Flight68K, 33, 39Freescale, 169

I/O terpeta ingatan, 168input/output, 108Intel, 168isyarat

BERR*, 135BG*, 138BR*, 138DTACK*, 141HALT*, 134RESET*, 134VPA*, 141

JEDEC, 152

keadaan tunggu, 144kod mesin, 23

logik gam, 155

mikropengawal, 11mod alamat, 21

penimbal, 175penyahkod, 158

RAM, 149ROM, 149, 150

selak, 171sistem terbenam, 2, 202SRAM, 151suruhan

BCC, 85BCS, 85BEQ, 85BNE, 85BRA, 82BTST, 88BVC, 86BVS, 86CMP, 86JMP, 81TRAP, 110TST, 88

System-on-Chip, 12

203

Lecturer
Text Box
If you found this book useful, donate to the Gaza fund