Sistem Terbenam Berasaskan Mikropemproses 68000                                    Muhammad Mun’im Ahmad Zabidi           ...
Kandungan 1 Sistem Berasaskan Mikropemproses                                                                              ...
ii                                                                                                                        ...
Kandungan                                                                                                                 ...
Bab 1 Sistem Berasaskan Mikropemproses Objektif     • Membandingkan ciri-ciri sistem terbenam dan sistem guna am     • Men...
2                                                         Bab 1. Sistem Berasaskan Mikropemproses         berta-hun-tahun ...
1.2. Perkakasan                                                                                       3                   ...
4                                                                 Bab 1. Sistem Berasaskan Mikropemproses                 ...
1.2. Perkakasan                                                                                  5                        ...
6                                                              Bab 1. Sistem Berasaskan Mikropemproses                    ...
1.3. Perisian                                                                                     7 suruhan tersebut. Sete...
8                                                         Bab 1. Sistem Berasaskan Mikropemproses oleh penghimpun digelar ...
1.5. Pemilihan Mikropemproses                                                                      9 1.5 Pemilihan Mikrope...
10                                                        Bab 1. Sistem Berasaskan Mikropemproses Latihan      1. Komponen...
Bab 2 Ciri Perisian 68000 Objektif     • Menerangkan latar belakang famili 68k     • Melakar model pengaturcaraan 68000   ...
12                                                                                    Bab 2. Ciri Perisian 68000          ...
2.2. Model Pengaturcaraan                                                                          13                     ...
14                                                                          Bab 2. Ciri Perisian 68000 Penuding Tindanan P...
2.3. Organisasi Ingatan                                                                               15                  ...
16                                                                                 Bab 2. Ciri Perisian 68000      • Kata ...
2.4. Pengenalan kepada Set Suruhan 68000                                                            17 hingga $FFFFFF (167...
18                                                                        Bab 2. Ciri Perisian 68000      • pemindahan dat...
2.5. Beberapa Suruhan Asas                                                                       19                       ...
20                                                                              Bab 2. Ciri Perisian 68000                ...
2.6. Pengenalan kepada Mod Alamat                                                                21 Walaupun suruhan ini d...
22                                                                      Bab 2. Ciri Perisian 68000 Pengalamatan Daftar Lan...
2.7. Format Suruhan Mesin                                                                               23 Pengalamatan Re...
24                                                                               Bab 2. Ciri Perisian 68000               ...
2.7. Format Suruhan Mesin                                                                          25 Suruhan Mesin untuk ...
26                                                                           Bab 2. Ciri Perisian 68000    Rajah 2.8(b) me...
2.8. Latihan                                                                                    27 2.8 Latihan    1. Apaka...
28                                                      Bab 2. Ciri Perisian 68000If you found this book useful, donate to...
Bab 3 Bahasa Himpunan Objektif     • Menerangkan proses penulisan aturcara     • Penggunaan penghimpun     • Menulis aturc...
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
68k utm complete
Upcoming SlideShare
Loading in …5
×

68k utm complete

2,583 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,583
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
35
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

68k utm complete

  1. 1. Sistem Terbenam Berasaskan Mikropemproses 68000 Muhammad Mun’im Ahmad Zabidi Universiti Teknologi Malaysia January 29, 2009If you found this book useful, donate to the Gaza fund
  2. 2. Kandungan 1 Sistem Berasaskan Mikropemproses 1 1.1 Sistem Berasaskan Mikropemproses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Perkakasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Perisian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Evolusi Mikropemproses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Pemilihan Mikropemproses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Ciri Perisian 68000 11 2.1 Famili 68k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Model Pengaturcaraan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Organisasi Ingatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Pengenalan kepada Set Suruhan 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5 Beberapa Suruhan Asas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6 Pengenalan kepada Mod Alamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7 Format Suruhan Mesin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.8 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 Bahasa Himpunan 29 3.1 Pembangunan Perisian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Perlaksanaan Aturcara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3 Format Penyata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4 Ungkapan dalam Medan Kendalian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5 Perintah Penghimpun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.6 Penggunaan Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4 Mod Alamat 47 4.1 Mod Daftar Data Langsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.2 Mod Daftar Alamat Langsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3 Alamat dan Daftar Alamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.4 Mod Mutlak Panjang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5 Mod Mutlak Pendek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.6 Mod Terdekat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7 Mod Tersirat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.8 Mod Daftar Alamat Tak Langsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.9 Mod Pascatokok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.10 Mod Prasusut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.11 Mod Daftar Alamat Tak Langsung dengan Ofset . . . . . . . . . . . . . . . . . . . . . . 56 4.12 Mod Daftar Alamat Tak Langsung dengan Indeks . . . . . . . . . . . . . . . . . . . . . 57 4.13 Mod PC Relatif dengan Ofset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.14 Mod PC Relatif dengan Indeks dan Ofset . . . . . . . . . . . . . . . . . . . . . . . . . 59 iIf you found this book useful, donate to the Gaza fund
  3. 3. ii Kandungan 5 Suruhan Olahan Data 61 5.1 Suruhan ADD dan SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2 Kesan ADD dan SUB Terhadap Bendera . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3 Suruhan Darab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.4 Suruhan Bahagi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.5 Mengolah Kendalian Berlainan Saiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.6 Suruhan Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.7 Mengubah Bendera CCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.8 Suruhan Anjak dan Putar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.9 Suruhan Olahan Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.10 Suruhan BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6 Kawalan Aturcara 81 6.1 Suruhan Lompat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.2 Suruhan Cabang Tanpa Syarat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.3 Suruhan Cabang Bersyarat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 Suruhan CMP, TST dan BTST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.5 Pemilihan Dua Turutan Suruhan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.6 Mengulang Turutan Suruhan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.7 Bentuk Gelung Alternatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7 Olahan Tatasusunan dan Rentetan 97 7.1 Prinsip Tatasusunan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.2 Isu-Isu Dalam Olahan Tatasusunan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.3 Kajian Kes Olahan Tatasusunan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.4 Rentetan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.5 Operasi Output Aksara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.6 Rutin TRAP dalam Easy68k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.7 Penggunaan Tatusunan Lanjutan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8 Tindanan dan Subrutin 115 8.1 Tindanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 8.2 Prinsip Asas Subrutin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 8.3 Subrutin Bersarang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 8.4 Melindungi Isi Daftar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 8.5 Pengiriman Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 8.6 Penggunaan Subrutin Yang Berkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 8.7 Kajian Kes Subrutin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9 Ciri Perkakasan MC68000 131 9.1 Pin dan Isyarat 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.2 Isyarat Kawalan Bas Tak Segerak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.3 Isyarat Kawalan Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 9.4 Kawalan Sampukan dan Status Pemproses . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.5 Kawalan Periferal 6800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.6 Isyarat Kawalan DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.7 Kitar Suruhan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140If you found this book useful, donate to the Gaza fund
  4. 4. Kandungan iii 10 Sistem Ingatan 149 10.1 Organisasi Ingatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.2 Ingatan Baca Sahaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 10.3 Ingatan Capaian Rawak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 10.4 Serpihan Ingatan Piawaian Industri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 10.5 Logik gam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.6 Logik Kawalan Ingatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 10.7 Penyahkodan Alamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 10.8 Litar Penjana DTACK* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 10.9 Penyahkodan Separa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 11 Pengantaramukaan Input/Output Asas 167 11.1 Prinsip Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 11.2 Pengantaramukaan LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 11.3 Pengantaramukaan Pamer 7 segmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 11.4 Pengantaramukaan Suis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 11.5 Pengantaramukaan Papan Kekunci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 11.6 Input/Output Mudah dengan EASy68K . . . . . . . . . . . . . . . . . . . . . . . . . . 180 12 Pengantaramukaan Selari - WIP 185 12.1 Peranti PIA MC6821 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 12.2 Input/Output dengan PIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 13 Pengantaramukaan Selari - WIP 195 13.1 Penghantaran Data Bersiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 13.2 Peranti ACIA MC6850 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 13.3 Memulakan ACIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 13.4 Menggunakan ACIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 13.5 Serpihan Sokongan bagi Perhubungan Bersiri . . . . . . . . . . . . . . . . . . . . . . . 205 14 Kekecualian & Sampukan 209 14.1 Mod Penyelia dan Pengguna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 14.2 Suruhan Kawalan Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 14.3 Pemprosesan Kekecualian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 14.4 Kekecualian yang Disebabkan Perlaksanaan Aturcara . . . . . . . . . . . . . . . . . . . 214 14.5 Keadaan Ralat yang Menyebabkan Perangkap . . . . . . . . . . . . . . . . . . . . . . . 218 14.6 Reset dan Pememulaan Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 14.7 Sampukan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 14.8 Kitar Akuan Sampukan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 14.9 Sampukan Tervektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223If you found this book useful, donate to the Gaza fund
  5. 5. 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 melihat aplikasi mikropemproses dan komponen-komponen dalamannya secara am. Anda akan melihat susunan dalaman komputer dan bagai-mana ia melaksanakan aturcara dalam ingatan. Anda akan juga melihat faktor-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 dan memudahkan kehidupan manusia. Peralatan yang mengandungi mikropemproses boleh dikategorikan kepada komputer guna am dan sistem terbenam. Komputer Guna Am Apabila perkataan komputer disebut, selalunya kita akan memikirkan komputer guna am. Terdapat beberapa kategori utama komputer guna am: Komputer peribadi (PC1 ) — Apabila disebut perkataan “komputer”, bentuk yang paling pantas terlintas di fikiran mempunyai dua bentuk utama iaitu desktop dan laptop. Ia merupakan komputer guna am yang paling murah dan lazimnya menggunakan peranti papan kekunci dan tetikus untuk input, serta paparan dan pencetak untuk output. Pelayan — Pelayan2 merupakan sebarang komputer yang dipasang sepanjang masa untuk melayan permohonan dari pengguna. Pelayan adalah penggerak utama Internet, dengan menghidangkan apa saja maklumat yang diperlukan pengguna. Disebabkan pelayan perlu beroperasi tanpa henti 1 personal computer 2 server 1If you found this book useful, donate to the Gaza fund
  6. 6. 2 Bab 1. Sistem Berasaskan Mikropemproses berta-hun-tahun lamanya, ia dibina menggunakan perkakasan yang lebih berkualiti ber-banding komputer 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 fungsinya boleh dilakukan oleh pelayan yang lebih murah. Superkomputer — Superkomputer ditakrifkan sebagai komputer yang terpantas semasa ia mula-mula diperkenalkan. Disebabkan teknologi komputer bergerak pantas, superkomputer hari ini akan menjadi komputer biasa pada hari esok. Superkomputer digunakan bagi pengiraan intensif seperti fizik kuantum, ramalan cuaca, permodelan molekul, simulasi (seperti simulasi pesawat dalam terowong udara dan simulasi senjata nuklear), dan sebagainya. Ia selalunya dijumpai di universiti-universiti utama, agensi ketenteraan dan makmal penyelidikan saintifik. Kebanyakan superkomputer hari ini dibina dengan beribu-ribu mikropemproses biasa yang digabungkan dengan penyambungan khusus. Versi kecil boleh dibina dengan empat pemproses ke atas dan ini dikenali sebagai gugusan komputer4 . Komputer guna am boleh melakukan pelbagai tugas menurut aturcara yang diisikan ke dalamnya dan peralatan yang disambungkan kepadanya. Untuk menggunakannya dengan efisien, komputer guna am memerlukan sistem pengoperasian. Dalam komputer peribadi, sistem pengoperasian yang kerap digunakan 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, ia tidak kelihatan seperti komputer. Aplikasi sistem terbenam menggunakan lebih 98% daripada pengelu- aran mikropemproses baru sedangkan pengeluaran selebihnya barulah digunakan dalam komputer guna am. Berikut disenaraikan hanya segelintir sistem terbenam yang biasa kita temui: Telefon bimbit Permainan video Kamera digital Kad pintar Pencetak Mesin tekanan darah Modem Walkie-talkie Ketuhar gelombang mikro Pendingin hawa Sistem brek kereta Radio kereta Laser perangkap laju TV litar tertutup Sistem terbenam direka untuk melakukan hanya satu fungsi berbanding komputer guna am yang boleh melakukan pelbagai fungsi. Jumlah sistem terbenam yang dikilang mencapai angka beberapa bilion setiap tahun. Sebagai jurutera, anda mungkin dikehendaki merekabentuk sistem terbenam, sedangkan anda hanya perlu membeli sebuah komputer peribadi. Jadual 1.1 meringkaskan perbezaan sistem terbenam dengan komputer kegunaan am. 1.2 Perkakasan Sebarang sistem berasaskan mikropemproses terbahagi kepada dua aspek utama iaitu perkakasan6 dan perisian7 . Perkakasan adalah komponen-komponen yang boleh dilihat seperti papan litar, cip dan 3 mainframe 4 computer cluster 5 embedded systems 6 hardware 7 softwareIf you found this book useful, donate to the Gaza fund
  7. 7. 1.2. Perkakasan 3 Jadual 1.1: Perbandingan komputer kegunaan am dan sistem terbenam Kategori Komputer Guna Am Sistem Terbenam Aplikasi Boleh diubah oleh peng- Tidak boleh, aplikasi telah dite- guna tapkan semasa rekabentuk Antaramuka Amnya mesti ada papan Tidak tetap, ada kalanya mudah pengguna kekunci dan skrin dengan beberapa butang dan LED, ada kalanya sama kompleks dengan komputer guna am Ciri penentu Kelajuan dan Lesapan kuasa, harga dan saiz keserasian perisian pendawaian. Perisian pula ialah aturcara yang terkandung dalam ingatan yang memboleh komputer berfungsi 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 beroperasi pada 10 MHz. Spesifikasi ingatan terpenting ialah saiznya sama ada 32 kilobyte, 1 megabyte atau 2 gigabyte. Peranti I/O merupakan komponen perkakasan yang dipilih bergantung aplikasi termasuk penukar analog/digital, penukar digital/analog, pengawal pemacu cakera, pemacu paparan video, dan sebagainya. Sistem Bas Struktur asas bagi sebuah sistem komputer asas ditunjukkan dalam Rajah 1.1. Kesemua komponen disambungkan melalui bas sistem iaitu sekelompok pengalir yang dikongsi oleh komponen-komponen dalam sistem. Bas sistem terbahagi kepada bas alamat, bas data dan bas kawalan. Fungsi terperinci ketiga-tiga bas ini akan diliputi kemudian. Pemproses atau unit pemprosesan pusat (CPU8 ) ialah jantung keseluruhan sistem. Ia mengawal keseluruhan operasi yang dilakukan oleh sistem. Pemproses melaksanakan aturcara yang tersimpan dalam ingatan. Ingatan berfungsi menyimpan aturcara dan data yang diperlukan oleh mikropemproses. Ingatan terbahagi kepada dua jenis: ingatan baca-sahaja (ROM9 ) dan ingatan capaian rawak (RAM10 ). ROM dikenali juga sebagai ingatan tidak meruap yang bermakna kandungannya kekal walaupun tanpa bekalan kuasa. RAM pula dikenali juga sebaga ingatan meruap yang mana kandungannya lenyap apabila bekalan kuasa diputuskan. Fungsi ROM dan RAM berbeza dalam komputer guna am dan sistem terbenam. Dalam komputer guna am, ROM mengandungi dua fungsi. Fungsi pertama ialah pengujian komponen-komponen kritikal semasa sistem mula-mula dihidupkan. Setelah lulus peringkat ini, ROM melaksanakan fungsi keduanya iaitu mengisikan sistem pengoperasian (seperti Windows atau Linux) ke dalam RAM. Setelah RAM diisikan dengan sistem pengoperasian, ROM sudah tidak diperlukan lagi sepanjang operasi normal sistem. Saiz RAM amat besar kerana ia perlu menempatkan sistem pengoperasian dan aplikasi. Pengguna boleh mengisikan sebarang aplikasi daripada cakera keras ke dalam RAM. Disebabkan maklumat dalam RAM lenyap apabila komputer ditutup, kesemua perisian ini perlu diisikan semula dari cakera keras setiap kali komputer mula-mula dipasang. Dalam sistem terbenam, fungsi ROM lebih penting kerana mengandungi keseluruhan aplikasi yang 8 central processing unit 9 read-onlymemory 10 random access memoryIf you found this book useful, donate to the Gaza fund
  8. 8. 4 Bab 1. Sistem Berasaskan Mikropemproses Bas Alamat Bas Data Bas Kawalan CPU Ingatan Ingatan Program Antaramuka Antaramuka Data (ROM) Selari Bersiri (RAM) Rajah 1.1: Rajah blok suatu sistem berasaskan mikropemproses. menentukan fungsi peralatan. Disebabkan kandungan ROM tidak berubah, fungsi sistem akan kekal sepanjang 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 dengan peranti selari seperti penukar D/A, penukar A/D atau pemacu cakera. Peranti I/O bersiri membolehkan perhubungan dengan komputer yang lebih besar atau dengan terminal operator. I/O bersiri agak lambat tetapi ia amat mudah: cuma dua dawai (untuk menghantar dan menerima data) dan dawai bumi diperlukan. Ada lagi komponen-komponen yang tidak ditunjukkan dalam Rajah 1.1 seperti litar pemasaan dan litar sampukan. Litar pemasaan mengawal kelajuan keseluruhan sistem dan biasanya terdiri daripada litar berasaskan pengayun hablur. Litar sampukan pula, jika ada, membolehkan pemproses mengawal banyak 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 dikenali sebagai mikropengawal11 atau komputer dalam satu cip. Bagi sesuatu famili mikropengawal, terdapat berbagai versi yang berbeza saiz ingatan dan jumlah peranti I/O walaupun menggunakan pemproses yang sama. Walaupun ia tidak berkeupayaan tinggi, ia banyak digunakan dalam sistem kecil kerana ia kecil, murah dan boleh beroperasi dengan kuasa bateri. Lazimnya ingatan dalam mikropengawal adalah terhad 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 perlu memilih versi yang benar-benar sepadan dengan sistem yang hendak dikawal. Selain mikropemproses dan mikropengawal, sistem terbenam terdapat juga dalam bentuk sistem dalam cip (SoC12 ). Jika mikropengawal boleh dibeli di pasaran dengan mudah dan digunakan dalam pelbagai 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 seperti pengawal LCD grafik, antaramuka USB, pengawal kad SD, penyahkod audio MP3 dan seumpamanya. Kos untuk mereka SoC amat tinggi tetapi menjimatkan kos keseluruhan pembuatan sesuatu produk kerana dapat mengurangkan jumlah komponen dan saiz produk. Operasi Ingatan Ingatan boleh dianggap menyimpan maklumat berbentuk satu senarai panjang. Setiap unsur dalam senarai ini mempunyai alamat (lokasi) dan data (isi). Peranti ingatan mempunyai penyambungan kepada bas alamat, bas data dan input kawalan. Bas alamat, bersifat input, menentukan lokasi mana yang sedang dicapai. Jumlah talian alamat menentukan jumlah kedudukan yang terdapat dalam ingatan. Bagi bas 11 microcontroller 12 System-on-ChipIf you found this book useful, donate to the Gaza fund
  9. 9. 1.2. Perkakasan 5 Alamat Data Alamat Data Isyarat Baca kawalan Tulis Rajah 1.2: Ingatan. alamat n bit, terdapat 2n alamat. Bas data, bersifat input dan output, memindahkan data masuk dan keluar 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). Bagi mikropemproses 68k, bas alamatnya bersaiz 24 bit jadi ia mempunyai 224 = 16777216 alamat. Setiap alamat menyimpan satu byte. Bagaimanapun, dua alamat bergandingan boleh dicapai serentak. Oleh itu bas datanya bersaiz 16 bit. Dua operasi boleh dilakukan terhadap ingatan: baca dan tulis. Operasi mana yang dilakukan ditentukan oleh isyarat BACA dan TULIS yang dihantar dari CPU ke ingatan sebagai sebahagian daripada bas kawalan. Dalam operasi baca, maklumat dipindahkan dari ingatan ke pemproses. Untuk operasi ini, alamat maklumat yang dikehendaki diberikan oleh pemproses kepada ingatan. Seterusnya, perintah BACA dikeluarkan. Apabila ingatan melihat kedua-dua maklumat ini, ia mengeluarkan data yang 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 tidak menjadi 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 akan disimpan dikeluarkan ke bas data. Akhir sekali, perintah TULIS diberi. Apabila ingatan melihat kesemua 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:If you found this book useful, donate to the Gaza fund
  10. 10. 6 Bab 1. Sistem Berasaskan Mikropemproses CPU Unit Kawalan Bas Alamat ALU Bas Data Bas Kawalan Daftar Rajah 1.4: Unit Pemprosesan Pusat. • Daftar13 • Unit kawalan14 • Unit aritmetik dan logik (ALU15 ) Daftar mikropemproses menyimpan maklumat yang sedang digunakan. Terdapat daftar yang kelihatan kepada pengaturcara dan ada juga yang terlindung. Unit kawalan mengawal operasi mikropemproses dan seterusnya keseluruhan sistem. ALU pula digunakan untuk memproses data. CPU boleh dikelaskan menurut jumlah bit yang diproses serentak, yang bergantung kepada saiz ALU, 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 tetapi memerlukan 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. Sebagai perbandingan, saiz bas data, ALU dan daftar pemproses 68HC11 kesemuanya 8 bit. Kesemua pemproses berfungsi dengan melaksanakan suruhan yang dipungut dari ingatan. Masa perlaksanaan setiap suruhan dinamai kitar suruhan atau kitar pungut-laksana. Kitar suruhan terdiri daripada 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 suruhan ini, alamat suruhan diisikan dahulu ke daftar yang dinamai pembilang aturcara (PC18 ). Pemproses membaca suruhan yang terkandung di alamat yang dinyatakan dalam PC. Suruhan ini kemudiannya diisi ke daftar suruhan (IR 19 ). IR lazimnya tidak termasuk dalam senarai daftar-daftar pemproses yang boleh dicapai secara langsung oleh pengaturcara. Semasa fasa laksana, pemproses mentafsir atau menentukan jenis suruhan yang terkandung dalam IR. Suruhan adalah suatu nombor perduaan yang difahami oleh unit kawalan. Kombinasi bit dalam suruhan menentukan apakah operasi yang perlu dilakukan serta kedudukan data yang diproses oleh 13 register 14 control unit 15 Arithmetic and Logic Unit 16 fetch 17 execute 18 program counter 19 instruction registerIf you found this book useful, donate to the Gaza fund
  11. 11. 1.3. Perisian 7 suruhan tersebut. Setelah suruhan ditafsirkan, barulah pemproses boleh melakukan tugas yang dikehendaki. Senarai semua jenis suruhan yang boleh dilakukan digelar set suruhan20 . Set suruhan sesuatu mikropemproses bergantung kepada keupayaan mikropemproses tersebut. Sebagai contoh, sebuah pemproses 32 bit lazimnya mempunyai suruhan darab dan ia boleh mendarab dengan pantas dan mudah. Sebaliknya, sistem 8 bit lazimnya tiada suruhan darab. Jika operasi darab diperlukan, ia terpaksa dilaksanakan dengan berpuluh-puluh suruhan dan memakan masa yang lebih lama. Setelah mikropemproses menamatkan satu kitar suruhan, ia akan memungut lalu melaksanakan suruhan seterusnya sehingga komputer dimatikan. 1.3 Perisian Perisian adalah istilah am yang merangkumi satu atau banyak aturcara atau program yang dilaksanakan dalam komputer. Sesuatu aturcara terdiri daripada banyak suruhan. Aturcara boleh dianggap suatu gubahan muzik sedangkan suruhan adalah satu not yang keluar dari satu alat muzik. Untuk memainkan lagu 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 dalam suatu aturcara. Dalam penulisan aturcara, mula-mula kita perlu mendapatkan algoritma atau konsep penyelesaian masalah. Seterusnya, algoritma perlu diterjemah menjadi suatu aturcara yang boleh difahami komputer. Inilah proses penulisan aturcara atau pengekodan21 , yang boleh dilakukan dalam pelbagai bahasa pengaturcaraan. Dalam sistem berasaskan mikropemproses, terdapat beberapa bahasa pengaturcaraan utama iaitu bahasa mesin, bahasa himpunan dan bahasa tahap tinggi. Bahasa Mesin Bahasa mesin22 ialah bahasa tabii komputer berbentuk kod perduaan. Ia mengawal operasi tahap rendah yang paling mudah atau primitif. Setiap operasi primitif tidak lebih daripada operasi memindahkan kelompok-kelompok bit dari satu tempat ke tempat lain dalam komputer, operasi asas aritmetik seperti tambah dan tolak, dan sebagainya. Pengguna boleh mengaturcara komputer dengan bahasa mesin secara mendapatkan kod perduaan bagi setiap suruhan kemudian mengisikan suruhan ke dalam ingatan secara manual.. Ia boleh dilakukan untuk mikropemproses mudah tetapi agak remeh untuk 68000. Bahasa ini tidak cekap kerana pengaturcaraannya 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 diterjemah ke bahasa mesin dengan penghimpun24 . Bahasa himpunan, sama seperti bahasa mesin, adalah khusus kepada setiap mikropemproses. Ini bermakna aturcara himpunan untuk sesuatu mikropemproses tidak difahami oleh mikropemproses lain. Apabila penghimpun menghasilkan bahasa mesin yang akan dilaksanakan di sistem dengan mikropemproses yang lain, ia dinamai penghimpun silang25 . Contohnya, penghimpun ASM68K menghimpun bahasa himpunan 68000 tetapi dilaksanakan komputer peribadi. Aturcara yang dihasilkan 20 instruction set 21 coding 22 machine language 23 assembly language 24 assembler 25 cross assemblerIf you found this book useful, donate to the Gaza fund
  12. 12. 8 Bab 1. Sistem Berasaskan Mikropemproses oleh penghimpun digelar juga kod objek26 . Selain menukar aturcara punca ke bentuk objek, penghimpun menghasilkan fail senarai27 . Fail senarai menunjukkan mnemonik, lokasi ingatan yang digunakan, dan nilai 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 perkakasan dalam sistem. Namun begitu, pereka tidak boleh mengabaikan bahasa mesin sama sekali jika ingin melakukan pengaturcaraan secara berkesan. Bahasa Tahap Tinggi Bahasa tahap tinggi membolehkan aturcara lebih mudah ditulis dan mudah dialihkan ke sebarang mikropemproses lain jika perlu. Bagaimanapun, kod objek yang dihasilkan oleh pengkompil bahasa tahap tinggi selalunya beroperasi dengan lebih perlahan dan saiz kod objek yang terhasil lebih besar berbanding kod objek yang dikeluarkan oleh penghimpun. Dua bahasa tahap tinggi yang popular dalam pembinaan sistem terbenam ialah C dan BASIC. C ialah bahasa yang amat popular kerana ia berupaya mengawal sumber-sumber perkakasan hampir sama seperti bahasa himpunan. Dengan penggunaan pengkompil, aturcara punca dalam C ditukar ke kod objek. Sesetengah pengkompil membolehkan suruhan bahasa himpunan diselitkan dalam aturcara C membolehkan kedua-dua bahasa digabungkan dalam satu aturcara. BASIC28 ialah bahasa tahap tinggi yang paling mudah dipelajari. Penyata-penyata aturcara punca diterjemah semasa perlaksanaan ke bahasa mesin menggunakan pentafsir. Ini menyebabkan aturcara BASIC beroperasi dengan amat perlahan. Terdapat juga pengkompil BASIC yang menghasilkan aturcara 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 merupakan peranti 4 bit yang asalnya direka untuk membina alat kira. Pada tahun berikutnya, Intel memperkenalkan peranti 8008 iaitu mikropemproses 8 bit yang pertama. Cip ini diikuti oleh 8080 dan 8085. Produk mikropemproses pertama dari Motorola ialah MC6800 pada tahun 1974. Cip ini juga merupakan peranti 8 bit. Suatu cip yang rekabentuknya berasal daripada MC6800 ialah 6502 yang dibina oleh MOS Technology 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 kedua dalam siri ini – 8088 – digunakan dalam IBM PC asal. Kedua-dua cip ini merupakan asas kepada peranti 80286, 80386, 80486, Pentium dan pemproses-pemproses lain yang berasaskan Pentium. Setiap cip merupakan pembaikan kepada cip sebelumnya dan membentuk siri yang dikenali sebagai x86. Siri x86 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 siri AMD64 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 pada asalnya direka sebagai pemproses dalam komputer guna am terutamanya dalam komputer Apple, tetapi pada hari ini ia hanya dijumpai dalam sistem terbenam selepas tiada lagi perkembangan siri ini selepas tahun 1993. Dalam satu perkembangan berkaitan, bahagian firma Motorola yang mereka pemproses (Motorola Semiconductor Products Sector) dipisahkan dari syarikat induk pada 2004 membentuk firma Freescale. Pada hari ini, pemproses Motorola 68k lebih tepat lagi disebut Freescale 68k. 26 objectcode 27 listing file 28 Beginner’s All-purpose Symbolic Instruction CodeIf you found this book useful, donate to the Gaza fund
  13. 13. 1.5. Pemilihan Mikropemproses 9 1.5 Pemilihan Mikropemproses Boleh dikatakan semua komputer peribadi pada hari ini menggunakan siri x86, sama ada dibuat oleh syarikat Intel, AMD dan lain-lain. Siri x86 ada juga digunakan dalam sistem terbenam prestasi tinggi yang agak besar seperti robot. Dalam pembinaan sistem terbenam, pemilihan pemproses tidak condong kepada siri x86 sahaja kerana terdapat pelbagai faktor lain seperti penggunaan kuasa, saiz dan kos. Terdapat pelbagai jenis mikropemproses yang digunakan dalam sistem terbenam. Ini berbeza dengan komputer guna am yang pilihan pemprosesnya terhad. Beberapa faktor perlu dipertimbangkan semasa membanding dan memilih mikropemproses untuk sesuatu tugas. Jurutera pereka boleh memilih peranti yang sesuai dengan aplikasi dari mikropengawal 4 atau 8 bit hinggalah ke pemproses penuh 32 dan 64 bit. Dari Freescale sahaja terdapat mikropengawal ColdFire, M*Core, PowerPC, 68HC11, 68HC05, 68HC08 dan beberapa lagi. Dari firma lain terdapat mikropengawal ARM, PIC, MSP430, Rabbit, AVR, TMS320, Nios, MicroBlaze dan berpuluh-puluh lagi. 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 tetapi 68040 boleh mencecah 40 MIPS. Unit MIPS boleh digunakan untuk membandingkan pemproses dari siri yang sama seperti dalam siri 68k atau dalam siri x86. Bagaimanapun, unit ini tidak begitu tepat bagi membanding pemproses dari siri yang berbeza contohnya satu pemproses dari siri 68k dengan satu pemproses 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 TV dengan sangat pantas dan ingatannya pula perlu mempunyai ingatan yang besar untuk menyimpan maklumat bagi setiap bintik yang dipaparkan. Aplikasi ini tidak mungkin dapat diselesaikan dengan mikropemproses 8 bit. Sebaliknya, sebuah sistem penggera mungkin mendapat input sejam sekali dan maklumat yang di bawah kawalannya hanya memerlukan beberapa puluh byte untuk disimpan. Dalam aplikasi ini, pemproses 8 bit lebih daripada mencukupi. Integrasi sistem menggambarkan keupayaan pengembangan sesuatu cip mikropemproses atau mikropengawal. Jika peranti input/output banyak tersedia dalam cip asas, peralatan tambahan tidak lagi 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 sebaliknya sistem yang kurang cekap kuasa mungkin memerlukan unit bekalan kuasa yang disambungkan kepada soket arus ulang-alik. Sudah tentulah sistem yang bergantung kepada bateri amat mudah dibawa ke mana-mana. Mikropemproses yang kurang cekap kuasa juga mungkin memerlukan kipas penyejukan. Faktor ini menyebabkan rekabentuk cesi peralatan perlu diubah dan kerapkali menjadi lebih besar dan kurang mudah alih. Masa ke pasaran ialah masa yang diperlukan untuk menyiapkan sesuatu rekabentuk. Ia bergantung kepada kemahiran perekabentuk dan kewujudan kelengkapan dan komponen yang diperlukan. Sesuatu mikropemproses mempunyai kos dan lesapan kuasa yang rendah serta keupayaan yang tinggi tidak semestinya dipilih jika tiada jurutera dalam sesuatu organisasi tersebut pernah menggunakannya. Perlu diingat, masa untuk mereka sistem yang kedua jauh lebih singkat berbanding dengan rekabentuk pertama. Kehadiran komponen perkakasan dan perisian yang diperlukan juga penting untuk menyiapkan sesuatu projek dalam masa yang singkat. 29 million instructions per secondIf you found this book useful, donate to the Gaza fund
  14. 14. 10 Bab 1. Sistem Berasaskan Mikropemproses Latihan 1. Komponen atau litar manakah yang bukan sebahagian daripada 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 bagi komputer berkenaan. (a) 16 bit (b) 20 bit (c) 24 bit (d) 32 bitIf you found this book useful, donate to the Gaza fund
  15. 15. 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 ini adalah pemproses pertama yang dikaji dengan mendalam. Berikut ialah sebab kenapa mikropemproses ini sesuai dikaji: • Ia popular. • Reka bentuknya kemas • Set suruhannya komprehensif Ia mempunyai ciri-ciri yang memudahkan rekabentuk sistem pengendalian dan pengaturcaraan bahasa tahap tinggi. Pemproses pada hari ini sememangnya kompleks dan akan terus menjadi semakin kompleks. Oleh itu mikropemproses pertama yang dipelajari sepatutnya lebih kompleks. Peranti MC68000 adalah pengasas siri 68k yang asalnya direka untuk menjadi unit pemprosesan pusat (CPU) dalam komputer guna am. Ia disusuli oleh beberapa komponen yang berbeza kelajuan dan keupayaan. Jadual 2.1 meringkaskan perbezaan CPU dalam famili 68k. Awalan MC menunjukkan bahawa peranti ini dibuat oleh Motorola atau Freescale. Sekiranya dibuat oleh 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 digunakan dalam sistem terbenam dalam bentuk yang berbeza-beza, antaranya: • Pemproses terbenam1 — merupakan pemproses asal dengan diubah nama untuk tujuan pemasaran seperti 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. 1 embedded controller 11If you found this book useful, donate to the Gaza fund
  16. 16. 12 Bab 2. Ciri Perisian 68000 Jadual 2.1: Unit pemprosesan pusat (CPU) dalam siri 68k Bas Bas Komponen Tahun Ciri Penting Data Alamat MC68000 1979 16 24 Asas siri 68k MC68008 1982 8 24 Asas siri 68k MC68008 MC68010 1983 16 24 MC68000 dengan ingatan maya MC68020 1984 32 24 Pemproses 32 bit pertama dalam famili 68k MC68030 1987 32 32 MC68020 diperbaiki dengan ditambah MMU MC68040 1990 32 32 MC68030 diperbaiki dengan ditambah FPU MC68060 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 mikropengawal boleh digunakan dalam pelbagai sistem, SoC direka khusus untuk satu produk dan mengandungi peranti I/O yang kompleks seperti LCD, grafik, USB dan wayarles. Contoh SoC dari siri 68k ialah peranti Dragonball yang pernah digunakan dalam PDA PalmPilot. Teknologi pembuatan semikonduktor juga telah berubah. Pada asalnya MC68000 dibuat dengan teknologi NMOS, tetapi kini peranti yang paling mirip iaitu MC68HC000 dibuat dengan teknologi CMOS. Penggunan teknologi CMOS mengurangkan lesapan kuasa dari 1 W ke 100 mW sahaja. Selain peranti-peranti yang menggunakan pemproses berasaskan 68000, terdapat siri mikropengawal Coldfire 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 peranti 68000 boleh dilaksanakan oleh ahli-ahli famili yang lebih maju seperti 68020 atau ColdFire. Setelah memahami suruhan-suruhan MC68000 asas, mudah untuk kita mengaturcara pemproses-pemproses lain dalam famili ini. 2.2 Model Pengaturcaraan Model pengaturcaraan menunjukkan daftar CPU yang boleh dicapai oleh pengaturcaraan dan peta ingatan. Komponen-komponen lain CPU seperti daftar suruhan, ALU, dan unit kawalan tidak ditunjukkan 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) 2 data register 3 address register 4 stack pointer 5 program counter 6 status registerIf you found this book useful, donate to the Gaza fund
  17. 17. 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 dan telah diproses oleh ALU. Setiap daftar data bersaiz 32 bit. Setiap bit diberi nombor kedudukan dengan bit 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, iaitu bit 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 daftar boleh dilakukan terhadap 7 daftar lain. Sesetengah mikropemproses lain mempunyai daftar data yang setiap satu mempunyai fungsi tertentu — tetapi tidak halnya dengan 68000. Daftar Alamat Daftar alamat, A0 hingga A7, digelar sedemikian kerana maklumat yang disimpan di dalamnya melambangkan 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 bit atau 32 bit. Walaupun setiap daftar besarnya 32 bit, 68000 hanya menggunakan 24 bit terendah apabila mencapai ingatan menghasilkan julat alamat sebesar 224 (16M) byte. Terdapat suruhan-suruhan 68000 yang beroperasi hanya terhadap daftar alamat. Operasi byte terhadap 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 kepada sesuatu daftar boleh juga dilakukan kepada enam daftar lain. Disebabkan bas alamat 68000 adalah 24 bit, hanya 24 daripada 32 bit yang terdapat dalam daftar alamat digunakan untuk mencapai ingatan.If you found this book useful, donate to the Gaza fund
  18. 18. 14 Bab 2. Ciri Perisian 68000 Penuding Tindanan Penuding tindanan merupakan daftar alamat A7 atau SP. Dalam kebanyakan operasi, kelakuannya sama seperti daftar A0 hingga A6. Bagaimanapun, penuding tindanan mempunyai fungsi yang lebih khusus iaitu untuk melaksanakan tindanan dan subrutin. Pemproses 68k mempunyai dua mod pemprosesan iaitu mod penyelia atau mod pengguna. Untuk menyokong 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 68k melaksanakan sistem pengoperasian9 . Sistem pengoperasian membolehkan sistem terus beroperasi jika terdapat ralat dalam perisian. Bagi sistem mudah, hanya SSP digunakan. Pembilang Aturcara Pembilang aturcara (PC) menuding kepada suruhan yang akan dilaksanakan. Daripada 32 bit yang ada di sini, hanya 24 bit dapat dikeluarkan ke bas alamat kerana itulah saiz fizikal bas alamat. Pemproses lanjutan dalam famili 68k menggunakan kesemua 32 bit. Untuk melaksanakan sesuatu suruhan, daftar PC diisi dengan alamat suruhan tersebut. Semasa suruhan dinyahkod oleh unit kawalan, PC ditambah supaya menuding ke suruhan yang berikutnya. Dengan itu, setelah suruhan dilaksanakan, CPU telah mempunyai maklumat yang cukup untuk memungut suruhan berikutnya. Daftar Status Daftar status dibahagikan kepada dua seksyen: byte sistem dan byte pengguna. Apabila 68000 berada dalam mod penyelia, keseluruhan daftar boleh dibaca dan diubah. Dalam mod pengguna, kedua-dua byte 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 byte pengguna. Byte pengguna yang dikenali juga sebagai daftar kod syarat10 (CCR). Setiap bit dalam CCR dinamai bendera. CCR menyimpan analisis operasi CPU terakhir. Fungsi setiap bendera diterangkan secara ringkas di sini: • C (carry) — Bernilai 1 apabila terdapat bawa semasa operasi tambah atau pinjam semasa operasi tambah. Dalam operasi anjak, ia mengandungi bit yang dianjak keluar dari kendalian. • V (overflow) — Bernilai 1 apabila limpahan aritmetik berlaku. Limpahan aritmetik berlaku apabila 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 nilainya tidak berubah. Kesan setiap suruhan terhadap nilai bendera tidak sama. Terdapat suruhan yang mengubah kesemua bendera, ada juga yang mengubah hanya beberapa bit dan ada suruhan yang langsung tidak mengubah sebarang bendera. Untuk mengetahui kesan sesuatu suruhan terhadap CCR, set suruhan perlu dirujuk. 7 supervisor stack pointer 8 user stack pointer 9 operating system 10 condition codes registerIf you found this book useful, donate to the Gaza fund
  19. 19. 2.3. Organisasi Ingatan 15 
 Rajah 2.2: Daftar status. Byte Sistem Bit-bit dalam byte sistem digunakan bagi mengawal operasi keseluruhan sistem. Butir terperinci penggunaan bit-bit ini diliputi dalam Bab 13. • I2 –I0 — Tiga bit serangkai ini dikenali sebagai bit topeng sampukan11 . Bit-bit ini mengawal tahap sampukan yang disambut oleh CPU. Jika dibenarkan melalui bit-bit ini, sampukan menyebabkan pemproses meninggalkan sebentar kerja yang sedang dilakukan bagi membuat suatu operasi yang lebih penting. Ciri ini membolehkan masa CPU digunakan dengan lebih optimum. Nilai I2 -I0 semasa reset ialah 111. • S (supervisor) — Pemproses 68000 boleh berada sama ada dalam mod pengguna atau mod penyelia. 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 boleh dicapai, dan kesemua suruhan boleh digunakan. Dalam mod pengguna, penunjuk tindanan yang aktif ialah USP, hanya byte rendah daftar status boleh dicapai dan beberapa suruhan tidak boleh dilaksanakan. Nilai bit S semasa reset ialah 1. • T (trace) — Jika T = 1, 68000 beroperasi dalam mod surih: selepas setiap suruhan, pemproses masuk ke rutin nyahpepijat12 bagi menyemak nilai daftar CPU dan isi ingatan. Nilai bit T semasa reset ialah 0 dan suruhan-suruhan dilaksanakan secara normal. Bit T hanya boleh diset ke 1 jika sistem 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 ini ialah: • Bit • Digit BCD13 (4 bit setiap satu, tetapi diproses berpasangan) • Byte (8 bit) • Kata14 (16 bit) 11 interruptmask bits 12 debug routine 13 binary coded decimal 14 wordIf you found this book useful, donate to the Gaza fund
  20. 20. 16 Bab 2. Ciri Perisian 68000 • Kata panjang15 (32 bit) Suruhan-suruhan boleh memproses satu atau lebih daripada jenis-jenis ini, tetapi tidak semua suruhan boleh memproses kesemua jenis. Jika sesuatu suruhan boleh memproses lebih daripada satu jenis data, imbuhan .B (byte), .W (word) atau .L (longword) ditambah kepada mnemonik suruhan untuk memilih saiz data yang dikehendaki. Bagaimana dengan aksara, rentetan, titik-apung dan sebagainya? Data daripada jenis ini dijana melalui pengaturcaraan. Suruhan-suruhan individu tidak boleh mengendalikan data ini sebaliknya turutan suruhan atau subrutin mesti ditulis jenis-jenis data ini. Ingatan digunakan untuk menyimpan aturcara dan data. Ini berbeza dengan daftar yang hanya boleh menyimpan data. Ingatan lebih perlahan tetapi lebih besar berbanding daftar. Bas alamat peranti 68000 saiznya 24 bit menjadikan 68000 boleh mencapai 224 = 24 x 220 = 16 megabyte ingatan. Ia boleh dilihat sebagai satu senarai petak atau sel, yang setiap satu menyimpan satu nilai 8 bit atau byte. Sel ingatan dinombor dari sifar sehingga muatan maksimum ingatan. Satu megabyte bersamaan 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) 15 longword (a) Satu byte sebaris. (b) Satu kata sebaris. Rajah 2.3: Dua kaedah mengatur ingatan. 
 Rajah 2.4: Menyimpan kata panjang dalam ingatanIf you found this book useful, donate to the Gaza fund
  21. 21. 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. Oleh itu, 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 ingatan ialah $0000000 hingga $FFFFFE. Peta ingatan boleh dilukis semula untuk memaparkan satu kata setiap baris. Alamat-alamat berbeza sebanyak dua dari satu baris ke baris berikutnya. Rajah 2.3(b) memaparkan peta ingatan yang standard dalam pengaturcaraan 68000. Sama seperti kata, kata panjang juga mesti bermula dari alamat genap. Alamat-alamat bagi kata-kata panjang bersebelahan berbeza sebanyak empat. Jika kata panjang pertama mempunyai alamat n, kata panjang akan berada di alamat n+4, dan seterusnya. Bagaimanapun, n ialah sebarang nilai genap. Rajah 2.4 menunjukkan pandangan ingatan semasa menyimpan kata-kata panjang. Kata dan kata panjang tidak boleh bermula dari alamat ganjil. Cip 68000 menghalang operasi baca atau tulis yang melanggar syarat ini (contohnya, cuba membaca kata dari alamat ganjil). Jika operasi seperti ini dicuba, suatu kekecualian terjadi kerana terdapat ralat alamat. Bab 13 akan menerangkan lebih lanjut mengenai konsep kekecualian. Maklumat yang disimpan dalam ingatan terdiri daripada data dan suruhan. Data berbentuk nombor yang boleh diproses dengan operasi aritmetik atau aksara yang boleh diolah sebagai rentetan. Suruhan memberitahu pemproses bagaimana data perlu diproses. Semua data dan aturcara berbentuk nombor perduaan 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 bila dikira 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 sama ada operasi bertindak kepada data byte, kata atau kata panjang. Kedudukan kendalian memberitahu CPU alamat 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 dilakukan oleh 68000 mempunyai opkod berlainan. Suruhan-suruhan boleh dikategorikan menurut jumlah kendalian iaitu dua kendalian, satu kendalian atau tiada kendalian langsung. Berikut adalah contoh tiga suruhan yang sah: MOVE.W D0,D1 ;suruhan dua kendalian CLR.W D1 ;suruhan satu kendalian NOP ;suruhan tanpa kendalian Suruhan-suruhan selalunya dikategorikan menurut operasi asas yang dilakukannya:If you found this book useful, donate to the Gaza fund
  22. 22. 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.3 menunjukkan variasi suruhan asas. Suruhan-suruhan akan diliputi secara berperingkat-peringkat. Suruhan pemindahan data diliputi dalam Bab 3 (mod alamat). Suruhan aritmetik, logik, putar dan anjak, olahan bit dan BCD merupakan suruhan yang mengubah atau memproses data. Ini diliputi dalam Bab 5 (suruhan olahan data). Suruhan kawalan aturcara diliputi dalam Bab 6 dan Bab 7. Akhir sekali, disebabkan suruhan kawalan sistem lebih khusus, ia diliputi dalam Bab 13. 2.5 Beberapa Suruhan Asas Untuk memberi pengenalan kepada set suruhan 68000, tiga suruhan asas diterangkan di bawah iaitu CLR, 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 atau meletakkan sifar di destinasi yang ditetapkan. Operasi ini boleh ditakrifkan secara padat menggunakan RTL16 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 yang diperincikan termasuk saiz data yang dibenarkan bagi sesuatu suruhan, kesan terhadap CCR, dan format bahasa mesin. 16 Register Transfer Language 17 addressing modeIf you found this book useful, donate to the Gaza fund
  23. 23. 2.5. Beberapa Suruhan Asas 19 Jadual 2.2: Set suruhan 68000. Mnemonik Makna Fungsi ABCD Add decimal with extend Tambah BCD dengan bendera X ADD Add binary Tambah AND Logical AND AND logik ASL Arithmetic shift left Anjak aritmetik kiri ASR Arithmetic shift right Anjak aritmetik kanan Bcc Branch conditionally Cabang bersyarat BCHG Bit test and change Uji bit dan tukar BCLR Bit test and clear Uji bit dan padam BRA Branch always Cabang sentiasa BSET Bit test and set Uji bit dan set BSR Branch to subroutine Cabang ke subrutin BTST Bit test Uji bit CHK Check register with bounds Semak daftar dengan batasan CLR Clear operand Padam kendalian CMP Compare Banding DBcc Decrement and branch conditionally Susut dan cabang bersyarat DIVS Signed divide Bahagi bertanda DIVU Unsigned divide Bahagi tak bertanda EOR Exclusive OR ATAU eksklusif EXG Exchange registers Tukarganti daftar EXT Sign extend Panjangkan tanda JMP Jump to effective address Lompat JSR Jump to subroutine Lompat ke subrutin LEA Load effective address Isi alamat berkesan LINK Link stack Kait tindanan LSL Logical shift left Anjak logik kiri LSR Logical shift right Anjak logik kanan MOVE Move source to destination Alih punca ke destinasi MULS Sign multiply Darab bertanda MULU Unsigned multiply Darab tak bertanda NBCD Negate decimal with extend Nafi BCD dengan bendera X NEG Negate Nafi NOP No operation Tiada operasi NOT One’s complement Pelengkap satu OR Logical OR OR PEA Push effective address Letak alamat ke tindanan RESET Reset external devices Reset peranti luar ROL Rotate left Putar kiri ROR Rotate right Putar kanan ROXL Rotate left through extend Putar kiri menerusi X ROXR Rotate right through extend Putar kanan menerusi X RTE Return from exception Kembali daripada kekecualian RTR Return and restore Kembali dan perbetul RTS Return from subroutine Kembali daripada subrutin SBCD Subtract decimal with extend Tolak BCD dengan bendera X Scc Set conditionally Set bersyarat STOP Stop processor Henti pemproses SUB Subtract binary Tolak SWAP Swap data register halves Tukarganti atas/bawah daftar TAS Test and set operand Uji dan set kendalian TRAP Trap Perangkap TRAPV Trap on overflow Perangkap jika limpahan TST Test operand Uji kendalian UNLK Unlink stack Buang kaitan tindananIf you found this book useful, donate to the Gaza fund
  24. 24. 20 Bab 2. Ciri Perisian 68000 Jadual 2.3: Variasi set suruhan 68000. Mnemonik Makna Fungsi ADDA Add address Tambah alamat ADDI Add immediate Tambah data terdekat ADDQ Add quick Tambah pantas ADDX Add with extend Tambah dengan bendera X ANDI Logical AND immediate AND data terdekat ANDI to CCR Logical AND immediate to CCR AND data terdekat dengan CCR ANDI to SR Logical AND immediate to SR AND data terdekat dengan SR CMPA Compare address Banding alamat CMPI Compare immediate Banding data terdekat CMPM Compare memory Banding ingatan EORI Logical exclusive OR immediate OR eksklusif data terdekat Logical exclusive OR immediate OR eksklusif data terdekat EORI to CCR to CCR dengan CCR Logical exclusive OR immediate OR eksklusif data terdekat EORI to CCR to SR dengan SR MOVE from SR Move from SR to destination Alih daripada SR ke destinasi MOVE to CCR Move from source to CCR Alih daripada punca ke CCR MOVE to SR Move from source to SR Alih daripada punca ke SR Alih penunjuk tindanan MOVE USP Move user stack pointer pengguna MOVEA Move address Alih ke daftar alamat MOVEM Move multiple registers Alih berbilang daftar MOVEP Move peripheral data Alih data periferal MOVEQ Move quick Alih pantas NEGX Negate with extend Nafi dengan bendera X ORI Logical OR immediate OR data terdekat ORI to CCR Logical OR immediate to CCR OR data terdekat dengan CCR ORI to SR Logical OR immediate to SR OR data terdekat dengan SR SUBA Subtract address Tolak daripada daftar alamat SUBI Subtract immediate Tolak data terdekat SUBQ Subtract quick Tolak pantas SUBX 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 kendalian dengan 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.If you found this book useful, donate to the Gaza fund
  25. 25. 2.6. Pengenalan kepada Mod Alamat 21 Walaupun suruhan ini diberi nama gerak, operasi sebenarnya menyalin data kerana kendalian punca tidak berubah. Suruhan ini boleh memindahkan data antara daftar dengan ingatan. RTL untuk suruhan ini 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 di kendalian 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. Mod alamat memberitahu pemproses bagaimana ia mendapatkan kedudukan kendalian sebenar. Kedudukan sebenar lebih dikenali sebagai alamat berkesan18 dan dijana semasa perlaksanaan suruhan. Peranti 68000 adalah pemproses berkuasa tinggi dengan mod-mod alamat yang canggih. Ini memudahkan pengaturcaraan bahasa himpunan kerana sesuatu kedudukan data boleh dicapai dengan menggunakan jumlah suruhan yang sedikit. Pemproses 68000 mempunyai 14 mod alamat kesemuanya yang 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 alamat yang 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 dan menambah atau menolak nilai sesaran24 . Harus diingati PC sentiasa menuding ke suruhan berikutnya. • Tersirat25 — Kendalian ialah daftar yang dinyatakan oleh mnemonik dalam suruhan seperti SR, USP, SSP atau PC. 18 effective address atau ringkasnya ea 19 register direct 20 absolute 21 register indirect 22 immediate 23 program counter relative 24 offset 25 inherentIf you found this book useful, donate to the Gaza fund
  26. 26. 22 Bab 2. Ciri Perisian 68000 Pengalamatan Daftar Langsung Dalam mod pengalamatan daftar langsung alamat atau lokasi kendalian dinyatakan secara langsung sebagai sebagai sebahagian daripada suruhan. Oleh itu, tiada sebarang pengiraan diperlukan bagi mendapatkan alamat berkesan. Dalam pengalamatan daftar langsung, kendalian terletak di dalam suatu daftar 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 salah satu 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 sebagai sebagai sebahagian daripada suruhan. Oleh itu, tiada sebarang pengiraan diperlukan bagi mendapatkan alamat 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 kecuali jika 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 suatu kendalian dalam ingatan. Isi daftar alamat dianggap penuding ke lokasi tersebut. Kendalian kata dan kata panjang mesti diletakkan dalam lokasi genap. Mod ini dikenali dengan tanda kurungan yang mengelilingi 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 nilai yang terdapat dalam daftar A0.If you found this book useful, donate to the Gaza fund
  27. 27. 2.7. Format Suruhan Mesin 23 Pengalamatan Relatif Dalam mod pengalamatan relatif nilai alamat kendalian didapati dengan menambah suatu sesaran kepada nilai dalam pembilang aturcara. Alamat berkesan didapati dengan melalui ungkapan PC + sesaran → ea Nilai sesaran mempunyai tanda positif atau negatif. Simbol * merujuk kepada nilai semasa pembilang aturcara. 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 untuk menandakan pengalamatan terdekat. Mod terdekat tidak dibenarkan sebagai kendalian destinasi. 2.7 Format Suruhan Mesin Pemproses 68000 melaksanakan aturcara yang mengandungi suruhan bahasa mesin. Pengaturcara jarang-jarang menulis aturcara dalam bahasa mesin kerana adalah lebih produktif menulis aturcara bahasa himpunan kemudian menterjemahkannya ke bahasa mesin. Bagaimanapun, kefahaman men- genai format bahasa mesin membolehkan pengaturcara mempergunakan keupayaan mikropemproses sepenuhnya. Setiap suruhan mesin untuk 68000 terdiri daripada sekurang-kurangnya satu kata 16 bit. Ia boleh mengandungi sehingga empat kata lanjutan. Kata pertama dalam suruhan, iaitu kata operasi26 , mengandungi maklumat tentang operasi, saiz data dan mod alamat. Kata lanjutan ditambah kepada suruhan untuk kendalian terdekat, alamat berkesan punca dan alamat berkesan destinasi. Rujuk Rajah 2.5 untuk susun atur suatu suruhan. Bit-bit yang mentakrifkan suruhan bermula dari bit tertinggi (bit 15) kata operasi. Jumlah bit sebenar bagi takrifan suruhan bergantung kepada suruhan. Pemproses 68000 akan menyemak dahulu nibel tertinggi (bit 15:12) . Maksud nibel ini ditunjukkan di Jadual 2.4. Baki bit dalam kata operasi digunakan untuk menjelaskan lagi operasi yang perlu dilakukan. 26 control word 
 Rajah 2.5: Format suruhan mesinIf you found this book useful, donate to the Gaza fund
  28. 28. 24 Bab 2. Ciri Perisian 68000 Jadual 2.4: Kod operasi pemproses 68000. Bit 15:12 Operasi Bit 15:12 Operasi 0000 Olahan bit/MOVEP/Terdekat 1000 OR/DIV/SBCD 0001 Gerak byte 1001 SUB/SUBX 0010 Gerak kata panjang 1010 Emulator A 0011 Gerak kata 101 CMP/EOR 0100 Pelbagai 1100 AND/MUL/ABCD/EXG 0101 ADDQ/SUBQ/Scc/DBcc 1101 ADD/ADDX 0110 Bcc/BSR 1110 Anjak/Putar 0111 MOVEQ 1111 Emulator F Rajah 2.6 menunjukkan format am untuk suruhan satu kendalian. Bit 15:6 mentakrifkan operasi yang akan dilakukan. Bit 5:0 ialah medan alamat berkesan yakni maklumat mengenai kedudukan kendalian. Ia terbahagi kepada medan mod dan medan daftar. Pemproses 68000 mempunyai 14 mod alamat. Salah satu mod asas ialah mod daftar langsung, yang mana maklumat yang diolah terletak dalam daftar 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 Sintaks 000 rrr Daftar data langsung Dn 001 rrr Daftar alamat langsung An 010 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 $XXXX 111 001 Mutlak panjang $XXXXXXXX 111 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.If you found this book useful, donate to the Gaza fund
  29. 29. 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 oleh berbagai-bagai suruhan. Oleh itu, pola 0010 dalam bit 11:8 digabungkan dengan pola 0100 dalam nibel teratas 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 kendalian destinasi. Format am suruhan MOVE ditunjukkan dalam Rajah 2.8(a). Terdapat tiga format berbeza untuk setiap saiz data yang dibenarkan. Dalam suruhan MOVE, alamat berkesan untuk kendalian punca mempunyai format yang sama dengan alamat berkesan suruhan satu kendalian, iaitu medan mod di kiri (bit 5:3) dan medan daftar di kanan (bit 2:0). Untuk kendalian destinasi, kedudukan medan terbalik, iaitu medan mod di kanan (bit 8:6) dan medan daftar di kiri (11:9). Keadaan ini mudah mengelirukan jika kita bekerja dalam bahasa mesin 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.If you found this book useful, donate to the Gaza fund
  30. 30. 26 Bab 2. Ciri Perisian 68000 Rajah 2.8(b) menunjukkan format mesin untuk suruhan MOVE.W D7,D0 iaitu 0011 0000 0000 0111. Suruhan ini memindahkan kata bawah D7 ke kata bawah D0. Kata bawah D0 akan berubah manakala kata atas D0 serta keseluruhan D7 tidak berubah. Suruhan Mesin untuk ADD Suruhan ADD adalah suruhan dua kendalian tetapi format mesinnya tidak serupa dengan suruhan MOVE. Untuk suruhan ADD, salah satu atau kedua-dua kendaliannya mestilah daftar data. Nibel teratas kata operasi ialah 1101. Bit 11:9 menentukan daftar data yang digunakan. Bit 8:6 ialah medan opmod yang 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.If you found this book useful, donate to the Gaza fund
  31. 31. 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 boleh digunakan 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 suruhan ini? 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 menuruti nilai ini? 13. D4 berisi $FFFFFFF sebelum suruhan MOVE #1,D4 dilaksanakan. Apakah isinya selepas suruhan 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 dan lokasi yang terbabit dalam suruhan-suruhan berikut (a) CLR.L $8000 (b) MOVE.W 2000,3000 (c) MOVE.W $2000,D0 (d) MOVE.W 2000,D0If you found this book useful, donate to the Gaza fund
  32. 32. 28 Bab 2. Ciri Perisian 68000If you found this book useful, donate to the Gaza fund
  33. 33. 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 diperkenalkan kepada penyata-penyata bahasa himpunan. 3.1 Pembangunan Perisian Pembangunan perisian adalah proses bagi menyediakan aturaca yang boleh dilaksanakan dalam mikropemproses. Tugas yang perlu mikropemproses lakukan harus ditukarkan ke bentuk bahasa mesin yang difahami oleh pemproses. Terdapat beberapa fasa iaitu analisis masalah, pengekodan aturcara, dan perlaksanaan. Analisis Masalah Analisis masalah adalah fasa bagi menukarkan tugas yang perlu dilakukan kepada suatu bentuk abstrak yang tidak khusus kepada mana-mana mesin atau pemproses. Dalam fasa ini, pengaturcara akan menghasilkan sama ada carta alir (flowchart) atau pseudokod. Salah satu keadah ini boleh digunakan untuk tujuan rekod dan dokumentasi. Carta alir berbentuk grafik dan lebih mudah difahami. Walaupun boleh dihasilkan dengan tangan dengan cepat, carta alir dalam bentuk salinan lembut agak sukar dihasilkan tanpa perisian yang khusus. Pseudokod pula adalah program olok-olok yang biasanya ditulis dalam bahasa pengaturcaraan yang menyerupai C atau Pascal. Ia tidak boleh dilaksanakan terus kerana ia menggunakan sintaks C atau Pascal yang dipermudahkan. Kaedah pseudokod lebih mudah bagi penulisan dokumentasi menggunakan perisian pemprosesan perkataan. Pengekodan Fasa kedua dalam penulisan adalah pengekodan. Dalam fasa ini, pengaturcara menyediakan aturcara dalam bentuk fail punca1 menggunakan penyunting. Aturcara yang terkandung dalam fail ini boleh 1 source file 29If you found this book useful, donate to the Gaza fund

×