You are on page 1of 5

BAB 4.

0 : SET SURUHAN MIKROPEMPROSES/PENGAWALMIKRO DAN MEMBINA ATURCARA

4.1 Mod/Ragam Pengalamatan

- Mod alamat ialah pelbagai kaedah mendapatkan data yang terletak dalam daftar atau dalam
ingatan. Untuk setiap kendalian, mod alamat memberitahu pemproses bagaimana ia perlu
mencari atau mengira alamat kendalian sebenar. Alamat sebenar dinamai alamat berkesan dan
dijana semasa pelaksanaan suruhan.

- Dengan adanya ragam pengalamatan ini, pengaturcara dapat mempelbagaikan corak penulisan
program supaya pelaksanaannya adalah cepat, memudahkan operasi dan menjimatkan
penggunaan ruang ingatan.

- Pemproses 68000 mempunyai 14 mod alamat kesemuanya yang boleh dikumpulkan kepada
enam mod asas :

Ragam Pengalamatan Contoh Suruhan Penerangan


1. Mod Tersirat RTS Terdiri daripada opkod sahaja

2. Mod Terdekat (Immediate) MOVE.B #$40,D0 Data diketahui. Contoh pertama menyatakan nilai
MOVE.W #40,D5 $40 adalah data dalam heksadesimal yang akan
MOVE.L #$30,D7 dipindahkan ke D0. Contoh kedua pula
menyatakan nilai 40 adalah data dalam nombor
desimal yang akan dipindahkan ke D5.

3. Mod Mutlak (absolute) MOVE.B $7000,D3 Menggunakan alamat sebenar bagi source atau
MOVE.L D4,$1234 destinasi

4. - Mod Daftar Data MOVE.L D0,D7 Data Register merupakan operand


Langsung
(data register direct)

- Mod Daftar Alamat MOVE.L A3,A1 Address register merupakan operand


Langsung MOVE.L A4,D5
(address register direct)

5. Mod Daftar Alamat Tak MOVE.L D2,(A0) Address register memegang alamat bagi lokasi
Langsung MOVE.W (A3),D7 memori yang mengandungi operand data.
(address register indirect) Contoh pertama menyatakan bahawa kandungan
data di alamat yang terdapat di A0 akan diubah
dengan data yang terdapat di D2

6. Mod Relatif
- Mod Pascatokok MOVE.W -(A6),D0 Alamat A6 akan ditolak 1,2 atau 4 bergantung
kepada saiz data (B, W atau L). Data di A6 baru
akan dipindahkan ke D0
- Mod Prasusut MOVE.W (A6)+,D0 Cara pemindahan data ini sama dengan Address
Register Indirect kecuali address register
tersebut akan ditambah selepas data
dipindahkan. Saiz penambahan 1,2 atau 4
bergantung kepada saiz data (B, W atau L)

Jadual 4.1 : Mod Ragam Pengalamatan

1
4.1.1 Mod Tersirat

- Sesetengah suruhan 68000 tidak memerlukan sebarang kendalian dan ada pula suruhan yang
merujuk daftar tanpa menyebut daftar yang digunakan.
- Contoh, RTS menyebabkan kawalan dikembalikan dari subrutin ke aturcara pemanggil
menggunakan daftar SP.

4.1.2 Mod Terdekat (immediate)

- Dalam pengalamatan terdekat sesuatu suruhan mengandungi kod operasi dan kendalian.
Kendalian ini boleh digunakan serta-merta (kedudukan terdekat) dan tiada capaian lain ke
ingatan diperlukan. Ia berguna untuk memuat atau mengubah daftar-daftar CPU dengan pantas.
Contohnya

MOVE.B #’m’, D0

- Menyalin nilai ASCII untuk ‘m’ ke dalam daftar D0. Simbol ‘#’ difahami oleh penghimpun untuk
menandakan pengalamatan terdekat. Contoh lain :

MOVE.B #$40,D0
MOVE.W #$40,D5
MOVE.W #$30,D7

- Data diketahui. Contoh pertama, kedua dan ketiga menyatakan data dalam nilai nombor hex
dipindahkan ke D0, D5 dan D7.

4.1.3 Mod Mutlak (absolute)

- Dalam mod pengalamatan mutlak alamat atau lokasi kendalian dinyatakan secara langsung
sebagai sebahagian daripada suruhan. Oleh itu, tiada sebarang pengiraan diperlukan bagi
mendapatkan alamat berkesan. Dalam pengalamatan mutlak, kendalian terletak di dalam suatu
lokasi ingatan.

Contoh 1 : CLR.W $2000 ; memadam kata yang terletak di alamat 2000

Contoh 2 : MOVE.W $2000,D2 ; bermakna salin 16 bit dari lokasi 2000 ke D2

Contoh lain : MOVE.B $7000,D3


MOVE.L D4,$1234 ; Bermakna menggunakan alamat sebenar bagi source
atau destinasi

4.1.4 Mod Pengalamatan Daftar Langsung (direct)

- Dalam mod pengalamatan daftar langsung, alamat atau lokasi kendalian dinyatakan secara
langsung sebagai sebahagian daripada suruhan. Alamat ini dibaca oleh CPU semasa membaca
suruhan dan boleh terus digunakan. Oleh itu, tiada sebarang pengiraan diperlukan bagi
mendapatkan alamat berkesan. Dalam pengalamatan daftar langsung, kendalian terletak di
dalam suatu daftar data atau alamat.

- Kebaikan menggunakan pengalamatan daftar :

2
(i) medan alamat yang kecil sahaja diperlukan
(ii) tidak perlu merujuk ke ingatan

- Oleh sebab-sebab di atas, masa capaian data adalah pantas. Keburukan bilangan daftar yang
terdapat dalam sistem selalunya terhad.

- Terbahagi kepada dua :


(i) Mod Daftar Data Langsung
(ii) Mod Daftar Alamat Langsung

Contoh 1 : CLR.W D1 ; memadam kata rendah dalam dafatr D1.

Contoh 2 : MOVE.B D0, D1 ; salin D0 ke D1 (suruhan MOVE memerlukan dua


kendalian dengan format

4.1.5 Mod Pengalamatan Tak Langsung (indirect)

- Pengalamatan tak langsung (indirect addressing) ialah satu kaedah pencapaian data yang
kompleks. Ragam ini boleh dibahagikan kepada dua jenis: daftar tak langsung dan ingatan tak
langsung.

- Dalam ragam pengalamatan ingatan tak langsung (indirect memory addressing) suruhan
mengandungi satu alamat tak langsung yang menunjuk ke satu alamat ingatan yang
mengandungi alamat berkesan bagi kendalian.

- Dalam suruhan pengalamatan daftar tak langsung (indirect register addressing) opkod memilih
daftar dalaman yang mengandungi alamat berkesan yang digunakan. Suatu daftar alamat
digunakan sebagai punca alamat suatu kendalian dalam ingatan. Isi daftar alamat dianggap
penuding ke lokasi tersebut. Mod ini dikenali dengan tanda kurungan yang mengelilingi nama
satu daftar alamat.

- Terdiri daripada Mod Daftar Alamat Tak Langsung sahaja (daftar data tiada)

- Format cara penulisannya :

CLR.B (A0) ; isi daftar A0 ialah alamat bagi lokasi ingatan yang
dipadam.

Contoh 1 : MOVE.L D2, (A0) ; A0 memegang alamat bagi lokasi memori yang
mengandungi kendalian/operand data. Kandungan
data di alamat yang terdapat di A0 akan diubah dengan
data yang terdapat di D2.

4.1.6 Mod Relatif

- Dalam pengalamatan relative alamat berkesan didapati dengan mencampur satu nombor
(dipanggil offset) ke atas nilai pembilang aturcara terkini.Nilai offset menuruti opkod dalam
suruhan. Ragam ini kerap digunakan bagi melakukan operasi cabang jarak dekat bagi gelung-
gelung pendek

- Terdiri daripada mod pascatokok dan mod prasusut

3
Contoh 1 :

ADD.W (A6)+,D4 ; mod pascatokok


; kandungan A6 digunakan sebagai penunjuk lokasi data di
memori. Data di lokasi memori tersebut ditambahkan ke data di
dalam D4. Kemudian, berlaku penambahan sebanyak 2
terhadap kandungan A6. Hasil operasi disimpan di D4.

Contoh 2 :

ADD.W -(A6),D4 ; mod prasusut


; penambahan sebanyak 2 terhadap kandungan A6. Kandungan
baru A6 digunakan sebagai penunjuk lokasi data di memori.
Data di lokasi memori tersebut ditambahkan ke data di
dalam D4. Hasil operasi disimpan di D4.

4.2 Konsep membina aturcara

- Membina aturcara bermakna menyelesaikan sesuatu masalah. Maka terdapat beberapa langkah
yang perlu di dalam proses membina aturcara :

(i) Definisi Masalah


- Seseorang pengaturcaraan mesti mengetahui/menentukan perkara-perkara yang hendak di
selesaikan sebelum menulis program. Contoh : Masukkan data bagi dua nombor. Kedua
nombor tersebut di campurkan dan di simpan di memori.

(ii) Rekabentuk Logikal


- Permasalahan yang hendak di selesaikan ditukar ke bentuk gambarajah proses (flow chart).

Start terminal

Input/Output

Operation/Process

Logical selection

Sub-routine

Connector

Connecting arrows

End terminal

4
(iii) Pengaturcaraan
- Berdasarkan gambarajah proses, aturcara boleh mula dibina.
- Contoh :

ORG $7000
MOVE.B #12,D0
MOVE.B #34,D1
ADD.B D0,D1
MOVE.B D1,$7050
END

(iv) Dokumentasi aturcara


- Contoh :

ORG $7000 ; program bermula di alamat $7000


MOVE.B #12,D0 ; data desimal 12 disimpan di D0
MOVE.B #34,D1 ; data desimal 34 disimpan di D1
ADD.B D0,D1 ; D0 + D1 D1
MOVE.B D1,$7050 ; kandungan byte D1 disimpan di alamat $7050
END ; program ditamatkan

(v) Analisis aturcara

You might also like