ik420-arsitektur dan organisasi komputer-materi 10 instruction sets pengalamatan
TRANSCRIPT
IK420-ARSITEKTUR & ORGANISASI KOMPUTER
MATERI 10. Instruction Sets: Addressing Modes and Formats
1
Jenis-Jenis Operand
Operasi Instruksi
Bagaimana cara menspesifikasikan operand danoperasi instruksi
• 1. Menspesifikasikan alamat sebuah operans
• 2. Pengaturan bit-bit instruksi dalam menentukan alamatoperand dan operasi instruksi tersebtu
2
Kode operasi (opcode) direpresentasi kan dengan singkatan – singkatan, yang disebut mnemonic.
Mnemonic mengindikasikan suatu operasi bagi CPU.
Contoh mnemonic adalah : ADD = penambahan
SUB = substract (pengurangan)
LOAD = muatkan data ke memori
Opcode Alamat
Format Instruksi
Field alamat dalam format instruksi sangat terbatas
Mereferensikan lokasi dalamjumlah banyak dalam memoriutama atau dalam memori virtual
4
Immediate Direct Indirect
RegisterRegister Indirect
Displacement
Stack
5
Secara virtual arsitektur komputer menyediakan lebih darisatu mode pengalamatam
Interpretasi effective address dapat berupa memori utamaatau register
Sistem yang memiliki memori virtual , effective address berupa memori virtual atau register
Pemetaan aktual ke alamat-alamat fisik merupakan tugasmekanisme paging dan tidak dirasakan oleh pemrogram
6
7
Proses tersebut harus memiliki alokasi sendiri didalam memori fisik.
Pada kenyataannya tidak semua bagian dariprogram tersebut akan diproses, misalnya??
Pelaksanaan manajemen memori pada intinya adalahdengan menempatkan semua bagian proses yang akandijalankan ke dalam memori sebelum proses dapat mulaidieksekusi
8
Ada pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentudipenuhi
Terdapat fungsi-fungsi yang jarang digunakan
Pengalokasian memori yang lebih besar dariyang sebenarnya dibutuhkan.
9
Memori dengan kapasitas yang sangat terbatas, akanmenurunkan optimalisasi utilitas dari ruang memorifisik (memori utama).
Setiap program yang dijalankan harus berada dimemori.
Memori merupakan suatutempat penyimpanan utama(primary storage) yang bersifat
sementara (volatile)
10
Teknik yang memisahkan antara memori logis danmemori fisiknya.
Memori logis merupakan kumpulan keseluruhanalamat dari suatu program.
Tanpa memori virtual, memori logis akan langsungdibawa ke memori fisik (memori utama).
Disinilah memori virtual melakukan pemisahandengan menaruh memori logis ke secondary storage(disk sekunder) dan hanya membawa halaman yangdiperlukan ke memori utama (memori fisik).
11
Teknik ini menempatkan keseluruhan program di disksekunder dan membawa alamat yang diperlukan kememori fisik sehingga memori utama hanya akanmenyimpan sebagian alamat proses yang seringdigunakan dan sebagian lainnya akan disimpan dalamdisk sekunder dan dapat diambil sesuai dengankebutuhan.
Jika proses yang sedangberjalan membutuhkaninstruksi atau data yang
terdapat pada suatu alamattertentu maka alamat tersebutakan dicari di memori utama.
Jika alamat yang diinginkantidak ada maka akan dicari ke
disk sekunder
12
Operand berada dalam instruksi
Operand=A
Teknik ini dapat digunakan untuk menentukan dan menggunakan konstanta/nilai variabelawal
e.g. ADD 5
•Add 5 to contents of accumulator
•5 is operand
No memory reference to fetch data
+:Menghemat satu siklus memori atau cache dalam siklus instruksi
-:Limited range artinya ukuran bilangan dibatasi oleh ukuran field alamat
13
OperandOpcode
Instruction
EA=A
Teknik Pengalamat DA
Komputer generasi lama
Sistem komputer kecil
Memerlukan sebuah referensi memori dan tidakmemerlukan kalkulasi khusus
15
+: Field alamatnya berisi efective sebuah operand
- :Keterbatasan field alamat karena panjang field alamatbiasanya lebih kecil dibandingkan panjang word
16
ADD A ; Tambahkan isi pada lokasi alamat A ke akumulatorMOV A,30H ; isi akumulator dengan bilangan 30 heksadesimal
Address AOpcode
Instruction
Memory
Operand
+: Panjang word sebesar N, dapat digunakan sebuah alamat 2N
- : Eksekusi instruksi memerlukan dua referensi memori untuk mengambil operand,
sebuah referensi untuk mengambil alamatnya dan referensi lainnya untuk
mendapatkan nilainya.
18
•Field alamat mengacu pada alamat word di dalammemori , yang pada gilirannya akan berisi alamat operandyang panjang•EA=(A)
•May be nested, multilevel, cascadede.g. EA = (((A)))
•Tambahkan isi memoriyang ditunjuk oleh isialamat A ke Akumulator
ADD(A)
•Tambahkan isi RAM yang lokasinya ditunjukan oleh
register R1 ke akumulator.
ADD A,R
19
Address AOpcode
Instruction
Memory
Operand
Pointer to operand
21
Mode Pengalamatannya sama dengan mode direct addressing
Perbedaannya terletak pada field alamat yang mengacu pada register, bukan pada memori utama.
Field yang mereferensi register memiliki panjang 4 atau 4 bit , sehingga dapat mereferensi 8 atau 16 register general purpose
22
EA=R
Limited number of registers
Very small address field needed
Shorter instructions
Faster instruction fetch
Register Address ROpcode
Instruction
Registers
Operand
Kelebihan
•Diperlukan field alamat berukuran kecil dalaminstruksi dan tidak diperlukan referensi memori.
•Akses ke register lebih cepat daripada akses kememori, sehingga proses eksekusi akan lebihcepat
Kerugian
•Ruang alamat sangat terbatas
24
Analog dengan Indrect Addressing
Perbedaan
Apakah field alamat mereferensi ke lokasi memori atauRegister
EA=( R )
25
Keuntungan dan keterbatasan pengalamatanregister tidak langsung pada dasarnya samadengan pengalamatan tidak langsung
•Keterbatasan field alamat diatasi dengan membiarkanfield tersebut mereferensi ke lokasi panjang word yangberisi alamat.
•Dalam satu siklus pengambilan dan penyimpanan, modepengalamtan register tidak langsung hanyamenggunakan satu referensi memori utama sehinggalebih cepat daripada mode pengalamatan tidak langsung.
26
Register Address ROpcode
Instruction
Memory
OperandPointer to Operand
Registers
Menggabungkan kemampuan direct addressing danregister indirect addresing
Mode ini mensyaratkan instruksi memiliki dua buahfield alamat, sedikitnya sebuah field yang eksplisit Field eksplisit bernilai A dan field implisit mengarah pada
register
EA=A+( R ) Address field hold two values A = base value R = register that holds displacement
Tiga Kegunaan Displacement Addresing secara umum Relative Addressing Base-Register Addressing Indexing
28
Register ROpcode
Instruction
Memory
OperandPointer to Operand
Registers
Address A
+
Register yang direferensikan secara implisit adalahprogram counter (PC)
R = Program counter, PC
EA = A + (PC)
• i.e. get operand from A cells from current location pointed to by PC
Efective Address didapat dari alamat instruksi saat ituditambahkan ke field alamat untuk menghasilkan EA
30
Register yang direferensikan berisisebuah alamat memori dan field alamatberisi perpindahan dari alamat itu.
Referensi register dapat eksplisitmaupun implisit
31
Field alamat mereferensi alamat memori utama dan register yang direferensikan berisi pemindahan positif dari alamat tersebut
• Merupakan kebalikan dari model base register
• Field alamat dianggap sebagai alamat memori dalam indexing
• Manfaat penting dari indexing adalah untuk eksekusi program-program iteratif
EA = A + R
• A = base
• R = displacement
Good for accessing arrays
• EA = A + R
• R++
32
33
Stack adalah array lokasi yang linier = pushdown list = last-in-first-out-queue.
Stack merupakan blok lokasi yang terbalik.
Butir ditambahkan ke puncak stack sehingga setiap saat blok akanterisi 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 ponter mereferensi ke elemen ketiga stack.
Stack pointer tetap berada di dalam register.
Dengan demikian, referensi – referensi ke lokasi stack di dalammemori pada dasarnya merupakan pengalamatan register tidaklangsung
Perbandingan Mode pengalamatan
Mode Algoritma Keuntungan
Utama
Kerugian utama
Immediate Operand = A Tidak ada referensi
memori
Besaran operand
terbatas
Direct EA = A Sederhana Ruang alamat
terbatas
Indirect EA = (A) Ruang alamat
besar
Referensi memori
berganda
Register EA = R Tidak ada referensi
memori
Ruang alamat
terbatas
Register Indirect EA = ( R ) Ruang alamat
besar
Referensi memori
ekstra
Displacement EA = A+ ( R ) Fleksibelitas Kompleksitas
Stack EA = Puncak
Stack
Tidak ada referensi Aplikasi memori
terbatas
Keterangan :
A = isi suatu field alamat dalam instruksi
EA = alamat aktual (efektif) sebuah lokasi yang berisi operasi yang di referensikan
( X ) = isi lokasi X
Pentium dilengkapi bermacam – macam mode pengalamatan untuk memudahkan bahasa – bahasatingkat tinggi mengeksekusinya secara lebih efisien(C/Fortran)
36
37
Register merupakan sebagian memori darimikroprosesor yang dapat diakses dengankecepatan yang sangat tinggi.
Dalam melakukan pekerjaannya mikroprosesorselalu menggunakan register-register sebagaiperantaranya, jadi register dapat diibaratkan sebagaikaki dan tangannya mikroprosesor
Dalam pemrograman dengan bahasa Assembly, mautidak mau anda harus berhubungan dengan apayang dinamakan sebagai Register
Register segmen
• Register yang digunakan untuk menentukan referensitertentu , tergantung pada eksekusi dan instruksinya
• Menampung alamat awal register segmen yang terkait
Register Deskriptor
Register yang digunakan untuk membuat alamat
• Base register dan indeks register
39
40
•Digunakan untuk menunjukkan tempat darisegmen yang sedang aktif.
Register CS(Code Segment)
•Menunjukkan letak dari segmen yang digunakan oleh stack.
Register SS(Stack Segment)
•Digunakan untuk menunjukkan tempat segmendimana data-data pada program disimpan.
Register DS(Data Segment)
•Digunakan untuk menunjukkan suatu alamat dimemory, misalkan alamat memory video
Register ES(Extra Segment),
Pada prosesor 80386 terdapat tambahan register segment 16 bit, yaituFS<Extra Segment> dan GS<Extra Segment>.
41
ImmediateRegister operand
Displacement
BaseBase with
displacement
Scaled index with
displacement
Base with index and
displacement
Base scaled index with
displacementRelative
Mode immediate
•Operand berada di dalam instruksi.
•Operand dapat berupa data byte, word maupun doubleword
Mode register
• Instruksi transfer data, aritmetika dan logika
•Beberapa macam jenis register:
• register 8 bit (AH, BH, CH, DH, AL, BL, CL, DL)
• register 16 bit (AX, BX, CX, DX, SI, DI, SP, BP)
• register 32 bit (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP)
• register 64 bit yang dibentuk dari register 32 bit secara berpasangan.
• register 8, 16 dan 32 merupakan register untuk penggunaan umum
• (general purpose register).
• register 64 bit biasanya untuk operasi floating point.
• register segmen (CS, DS, ES, SS, FS, GS
42
Mode displacement
• Alamat efektif berisi bagian – bagian instruksi dengandisplacement 8, 16, atau 32 bit.
• Dengan segmentasi, seluruh alamat dalam instruksi mengacu ke sebuah offset di dalam segmen.
• Dalam Pentium, mode ini digunakan untuk mereferensivariabel – variabel global
Mode Base
• Menspesifikasikan bahwa salah satu register 8, 16 dan 32 bit berisi efektif address.
• Mode ini ekivalen dengan apa yang dikenal dengan register indirect addressing
43
Mode base with displacement mode
•Digunakan oleh compiler untuk menunjukawal daerah local variabel.
•Digunakan untuk mengakses field sebuahrecord
Scale Index With Displacement
•Mode ini sangat cocok untuk pengindeksanarray
44
Base With index and displacement mode
•Menjumlahkan isi register basis, index register dan displacement untuk mendapatkan effective address
•Mode pengalamatan ini dapat digunakan untuk mengakses array duadimensi
Base scaled index with displacement mode
•Menjumlahkan isi index register yang dikalikan dengan skala, isiregister basis dan displacement untuk mendapatkan effective address
•Mode ini cukup efisien dalam melakukan pengindeksan array duadimensi apabila panjang arraynya sama dengan 2,4 atau 8 byte
Relative mode
•Digunakan untuk tranfer control
45
Stallings Wiliams,”Computer Organization and Architecture”
46