Kamis, 14 November 2013

METODE PENGALAMATAN



Metode pengalamatan merupakan aspek dari set instruksi arsitekturdi sebagian unit pengolah pusat (CPU) desain yang didefinisikan dalam set instruksi arsitektur dan menentukan bagaimana bahasa mesinpetunjuk dalam arsitektur untuk mengidentifikasi operan dari setiap instruksi.. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori yang efektif dari operand dengan menggunakan informasi yang diadakan di registerdan / atau konstanta yang terkandung dalam instruksi mesin atau di tempat lain.

Pada prosesor 8051 terdapat 7 cara pengalamatan, yaitu :
·        - Immediate addressing atau instant addressing atau pengalamatan instan.

·         - Register addressing atau pengalamatan register.

·         - Direct addressing atau pengalamatan langsung.

·        - Indirect addressing atau pengalamatan tidak langsung

- Register Indirect Addressing
- Displacement Addressing
- Stack Addresing 
 
Pada prosesor 8051, secara garis besar ada 3 macam lokasi data, yaitu RAM internal, ROM internal dan SFR. RAM juga biasa disebut data memory atau memory tempat meletakkan data, sedangkan ROM juga biasa disebut code memory atau memory tempat meletakkan kode instruksi. Tetapi biasanya data yang berupa konstanta ditulis pada ROM internal. Berikut ini adalah contoh mode pengalamatan.

1. Immediate Addressing.
MOV   50H,#40H       ;masukkan ke RAM alamat 50H data 40H
Kode instruksi di atas adalah contoh mode pengalamatan instan. MOV adalah kode operasi atau opcode (operation code) untuk menyalin data ke lokasi tertentu. 50H adalah operand pertama, sedangkan 40H adalah operand kedua. Operand adalah data atau lokasi data yang dilibatkan dalam eksekusi instruksi.
Operand pertama ditulis tanpa tanda ‘#’ artinya angka 50H merupakan alamat memory, dalam hal ini RAM, sedangkan operand kedua diawali dengan tanda ‘#’ yang berarti instan, maksudnya data yang akan dilibatkan telah tersedia pada instruksi tsb, yaitu angka 20H. Pada mode pengalamatan instan, biasanya operand kedua berupa konstanta, sedangkan operand pertamanya dapat berupa alamat RAM internal, register atau SFR. Contoh lain untuk mode pengalamatan instan, misalnya :
            MOV   R5,#40H                      ;masukkan data 40H ke R5
            MOV   TMOD,#01010001B   ;masukkan data 01010001 ke register TMOD
            ADD   A,#12                            ;A = A + 12
Keuntungan:
  1. Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
  2. Menghemat siklus instruksi sehingga proses keseluruhan akan cepat
Kekurangan:
  1. Ukuran bilangan dibatasi oleh ukuran field alamat

2. Register Addressing.
            MOV   50H,R4            ;salin isi R4 ke RAM alamat 50H.
Kode instruksi di atas merupakan contoh mode pengalamatan register, operand 2 berupa register, dalam hal ini R4. Data yang akan dilibatkan dalam operasi ini berada di dalam R4. Sedangkan operand 1 dapat berupa RAM maupun SFR.
Dalam pemrograman 8051, tidak dimungkinkan penulisan kode program yang melibatkan 2 register. Tetapi karena alamat register dapat diganti dengan alamat RAM internal, maka ada cara lain untuk melibatkan 2 register dalam 1 kode instruksi. Berikut ini adalah beberapa contoh lain mode pengalamatan register.
MOV   04H,R3            ;sama dengan MOV     R4,R3 untuk Register Bank 0
MOV   0BH,R3           ;sama dengan MOV     R4,R3 untuk Register Bank 1
Kelebihan Register Addressing :
  • Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
  • Akses ke regster lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat
Kekurangan Register Addressing : Ruang alamat menjadi terbatas

3. Direct Addressing.
            MOV   50H,40H          ;salin isi RAM alamat 40H ke RAM alamat 50H.
Kode instruksi di atas adalah contoh mode pengalamatan langsung. Data yang akan dilibatkan dalam operasi instruksi berada di dalam RAM internal, dalam contoh ini RAM alamat 40H. Direct address bukan hanya meliputi RAM internal tetapi juga SFR, baik operand pertama maupun operand kedua dapat berupa lokasi RAM maupun SFR. Berikut ini adalah contoh lain pengalamatan langsung,
            MOV   A,P1                ;isi Port 1 disalin ke accumulator
            MOV   40H,TL0          ;low-byte dari Timer 0 disalin ke RAM internal alamat 40H
            MOV   P2,50H            ;menyalin isi RAM internal alamat 50H ke Port 2
Kelebihan:
  • Field alamat berisi efektif address sebuah operand
  • Teknik ini banyak digunakan pada komputer lama dan komputer ecil
  • Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus
Kelemahan:
  • Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word Contoh: ADD A ; tambahkan isi pada lokasi alamat A ke akumulator

4. Indirect Addressing.
MOV   R1,#40H         ;mengisi R1 dengan nilai 40H
MOV   A, @R1           ;menyalin isi RAM yang alamatnya tersimpan di R1
                                    ;yaitu RAM alamat 40H ke accumulator.
INC     R1                   ;isi R1 ditambah 1
MOV   P1,@R1          ;menyalin isi RAM alamat 41H ke Port 1.

Kode instruksi di atas adalah contoh mode pengalamatan tak langsung, di mana salah satu operandnya berupa RAM internal yang alamatnya tersimpan di R1. Register yang digunakan untuk operasi pengalamatan tak langsung hanyalah R0, R1 dan DPTR.
            Pada contoh di atas, R1 diisi angka 40H, setelah itu isi R1 dijadikan penunjuk alamat RAM internal, sehingga instruksi kedua merupakan perintah untuk menyalin isi RAM internal alamat 40H ke dalam accumulator. Instruksi ketiga adalah instruksi untuk menambah satu isi R1, sehingga sekarang isi R1 adalah angka 41H.
Kelebihan Indirect Addresing : Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi
Kekurangan Indirect Addresing : Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi.

5. Register Indirect Addressing
Metode pengalamatan register tidak langsung mirip dengan metode pengalamatan tidak langsung  Perbedaannya adalah field alamat mengacu pada alamat register. Letak operand berada pada memori yang dituju oleh isi register.

Kelebihanan dan kekurangan pengalamatan register tidak langsung adalah sama dengan pengalamatan tidak langsung. Keterbatasan field alamat  diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak. Dalam satu siklus pengambilan dan penyimpanan, metode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada metode pengalamatan tidak langsung.

6. Displacement Addressing
                Displacement Addressing adalah menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung. Metode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit. Field eksplisit bernilai A dan field implisit mengarah pada register.
Ada tiga model displacement, yaitu Relative addressingBase register addressing, dan Indexing

7.  Stack Addresing
Stack adalah array lokasi yang linier = pushdown list = last-in-first-outStack merupakan blok lokasi yang terbalik. Butir ditambakan ke puncak stack sehingga setiap saat blok akan terisi secara parsial. Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas stack. Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack pointer mereferensi ke elemen ketiga stackStack pointer tetap berada dalam register. Dengan demikian, referensi-referensi  ke lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register tidak langsung.

Referensi:

Tidak ada komentar:

Posting Komentar