Sabtu, 16 November 2013

METODE PENGALAMATAN

Program biasanya ditulis dalam bahasa tingkat tinggi, yang memungkinkan program untuk menggunakan konstanta, variable local dan global, pointer, dan array. Pada saat mentranslasi program bahsa tingkat tinggi menjadi bahsa assembly, compiler harus mampu mengimplimentasi konstruksi ini menggunakan fasilitas yang disediakan dalam set instruksi computer dimana program akan dijalankan. cara yang berbeda dalam menentukan lokasi suatu operand ditetapkan dalam suatu instruksi yang disebut sebagai mode pengalamatan.

Implementasi variable dan konstanta

Variable dan konstanta adalah tipe data yang paling sederhana dan terdapat dalam hampir setiap program computer. Dalam bahasa assembly, suatu variable dinyatakan dengan mengalokasikan suatu register atau lokasi memori untuk menyimpan nilainya. Sehingga nilai tersebut dapat diubah seperlunya menggunakan instruksi sesuai.

Kita mengakses operand dengan menetapkan nama register atau alamat lokasi memori tempat operand berada. Definisi yang presisi dari dua mode tersebut adalah:

a)      Mode register operand adalah isi register prosesor, nama alamat register dinyatakan dalam instruksi tersebut.
b)       Mode absolute operand adalah lokasi memori, alamat lokasi dinyatakan secara eksplisit didalam instruksi tersebut. (pada bebrapa bahasa assembly, mode ini disebut direct).
c)      Mode immediate operand dinyatakan secara eksplisit dalam instruksi, misalnya, instruksi Move 200 immediete, RO.


Indirection dan pointer

Pada mode pengalamatan berikutnya, instruksi tidak menyatakana operand atau alamatnya secara eksplisit. Sebaliknya, instruksi menyediakan informasi dari nama alamat memori suatu operand dapat ditetapkan. Kita menyebut alamat ini sebagai effective address (EA) suatu operand.
Selain kesederhanaanya yang tampak jelas, pengalamatan indirect melalui memori telah terbukti memiliki keterbatasan pengunaan sebagai mode pengalamatan, dan jarang di gunakan dalam computer modern, pengalamatan indirect melalui register digunakan secara luas. Maka pengalamatan indirect melalui register memungkinkan untuk mengakses variable global dengan terlebih dahulu me-load alamat operand dalam suatu register.


Secara umum teknik addressing yang sering dilakukan adalah:

1. Immediate addressing
Operand (data yang akan dikomputasi) berada langsung pada set instruksi.

2.   Direct Addressing
Operand berada pada memori, set instruksi memegang alamat lokasi memori dimana operand tersebut berada.

3.   Indirect Addresing
Operand berada pada memori, untuk mendapatkan operand ini CPU harus melakukan penelusuran dua kali yaitu dari data alamat memori yang ada pada set instruksi serta alamat yang ditunjuk oleh alamat memori yang diperoleh dari set instruksi tadi.

4.   Register addressing
Operand berada pada register, cara kerjanya mirip dengan direct addressing hanya saja CPU mengakses alamat register bukan alamat memori.

5.   Register Indirect Addressing
Operand berada pada memori, untuk mendapatkan operand CPU harus mengakses register terlebih dahulu karena informasi lokasi operand berada pada register.

6.  Displacement
Operand berada pada memori, cara kerjanya merupakan gabungan dari teknik direct addressing dan register indirect addressing.

7.   Stack
Operand berada pada stack, operand secara berkala dimasukan ke stack sehingga ketika
operand dibutuhkan maka operand sudah berada pada “top of the stack”.


Teknik pengalamatan tersebut harus dapat memenuhi kebutuhan komputasi yang dilakukan oleh computer yang secara garis besar dapat dibagi kedalam tiga kategori yaitu:

-         Operasi load (memasukan data).
-         Operasi branch (percabangan).                                                                                                 
-         Operasi aritmatik dan logika.


Tidak ada komentar:

Posting Komentar