Jumat, 13 Maret 2009

MODE_PENGALAMATAN

D. MODE PENGALAMATAN

Mode pengalamatan pada mikrokontroler AT89S51 adalah sebagai berikut :
· Pengalamatan Langsung ( Direct Addressing )
Dalam pengalamatan langsung, operand-operand ditentukan berdasar alamat 8-bit (byte) dalam suatu instruksi. Hanya RAM internal dan SFR yang bisa diakses secara langsung. Misalnya instruksi : MOV A,7FH.
· Pengalamatan Tak-Langsung ( Indirect Addressing )
Dalam pengalamatan Tak Langsung instruksi menentukan suatu register yang digunakan untuk menyimpan alamat operand. Baik RAM internal maupun eksternal dapat diakses secara tak-langsung. Register alamat 8bit dapat menggunakan Stack Pointer atau R0 dan R1 dari bank register yang dipilih. Sedangkan untuk alamat 16-bit hanya bisa menggunakan register pointer dat 16-bit atau DPTR. Misalnya instruksi : MOV A,@R0.
· Instruksi-instruksi Register
Instruksi yang berubungan dengan Register, pengaksesan R0-R7 dapat dilakukan dengan instruksi yang op-codenya mengandung 3 bit spesifikasi register ( 000 untuk R0, 001 untuk R1 hingga 111 untuk R7. pegaksesan tersebut dapat menghemat penggunaan kode instruksi, karena tidak memerlukan sebuah byte untuk alamat. Saat instruksi tersebut dikerjakan, satu dari delapan register pada bank yang terpilih yang diakses. Misalnya instruksi : MOV A,R1 sama dengan MOV A,01H.
· Instruksi-instruksi Register-Khusus
Instruksi yang dikhususkan pada register tertentu dan tidak berlaku untuk register lain. Misalnya instruksi : INC A , instruksi tersebut hanya berlaku di Akumulator saja.
· Pengalamatan Segera ( Immediet addressing )
Nilai dari suatu konstanta dapat segera menyatu dengan op-codenya dalam memori program. Misalnya instruksi : MOV A,#100, instruksi ini langsung memberikan konstanta 100 desimal kedalam akumulator.
· Pengalamatan Terindeks ( Indexed Addressing )
Memori program hanya bisa di akses melalui pengalamatan terindeks. Mode pengalamatan ini dapat ditujukan untuk membaca tabel tengok ( look-up tables) yang tersimpan pada memori program. Sebuah register dasar 16-bit ( bisa DPTR atau pencacah Program Counter/PC ) menunjuk ke awal tabel dan akumulator di-set pada angka indeks tabel yang akan diakses. Misalnya instruksi : MOVC A,@A+PC , pada instruksi ini Akumulator akan diisi konstanta pada tabel tengok diprogram yang berada pada nilai pencacah/PC di tambah dengan nilai akumulator sebelumnya. Jika A semula diisi dengan 1H dan PC sampai di alamat memori-program 40H maka tabel yang berada di alamat 40+1 = 41H akan dimasukkan ke A.

Tidak ada komentar:

Posting Komentar