Anda di halaman 1dari 46

IK420-ARSITEKTUR & ORGANISASI

KOMPUTER
MATERI 10. Instruction Sets: Addressing Modes and Formats
1
Jenis-Jenis Operand
Operasi Instruksi
Bagaimana cara menspesifikasikan operand dan
operasi instruksi
1. Menspesifikasikan alamat sebuah operans
2. Pengaturan bit-bit instruksi dalam menentukan alamat
operand 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 dalam
jumlah banyak dalam memori
utama atau dalam memori virtual
4
Immediate Direct Indirect
Register
Register
Indirect
Displacement
Stack
5
Secara virtual arsitektur komputer menyediakan lebih dari
satu mode pengalamatam
Interpretasi effective address dapat berupa memori utama
atau register
Sistem yang memiliki memori virtual , effective address
berupa memori virtual atau register
Pemetaan aktual ke alamat-alamat fisik merupakan tugas
mekanisme paging dan tidak dirasakan oleh pemrogram
6
7
Proses tersebut harus memiliki alokasi sendiri di
dalam memori fisik.
Pada kenyataannya tidak semua bagian dari
program tersebut akan diproses, misalnya??
Pelaksanaan manajemen memori pada intinya adalah
dengan menempatkan semua bagian proses yang akan
dijalankan ke dalam memori sebelum proses dapat mulai
dieksekusi
8
Ada pernyataan-pernyataan atau pilihan yang
hanya akan dieksekusi jika kondisi tertentu
dipenuhi
Terdapat fungsi-fungsi yang jarang digunakan
Pengalokasian memori yang lebih besar dari
yang sebenarnya dibutuhkan.
9
Memori dengan kapasitas yang sangat terbatas, akan
menurunkan optimalisasi utilitas dari ruang memori
fisik (memori utama).
Setiap program yang dijalankan harus berada di
memori.
Memori merupakan suatu
tempat penyimpanan utama
(primary storage) yang bersifat
sementara (volatile)
10
Teknik yang memisahkan antara memori logis dan
memori fisiknya.
Memori logis merupakan kumpulan keseluruhan
alamat dari suatu program.
Tanpa memori virtual, memori logis akan langsung
dibawa ke memori fisik (memori utama).
Disinilah memori virtual melakukan pemisahan
dengan menaruh memori logis ke secondary storage
(disk sekunder) dan hanya membawa halaman yang
diperlukan ke memori utama (memori fisik).
11
Teknik ini menempatkan keseluruhan program di disk
sekunder dan membawa alamat yang diperlukan ke
memori fisik sehingga memori utama hanya akan
menyimpan sebagian alamat proses yang sering
digunakan dan sebagian lainnya akan disimpan dalam
disk sekunder dan dapat diambil sesuai dengan
kebutuhan.
Jika proses yang sedang
berjalan membutuhkan
instruksi atau data yang
terdapat pada suatu alamat
tertentu maka alamat tersebut
akan dicari di memori utama.
Jika alamat yang diinginkan
tidak ada maka akan dicari ke
disk sekunder
12
Operand berada dalam instruksi
Operand=A
Teknik ini dapat digunakan untuk menentukan dan menggunakan konstanta/nilai variabel
awal
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
Operand Opcode
Instruction
EA=A
Teknik Pengalamat DA
Komputer generasi lama
Sistem komputer kecil
Memerlukan sebuah referensi memori dan tidak
memerlukan kalkulasi khusus
15
+: Field alamatnya berisi efective sebuah operand
- :Keterbatasan field alamat karena panjang field alamat
biasanya lebih kecil dibandingkan panjang word
16
ADD A ; Tambahkan isi pada lokasi alamat A ke akumulator
MOV A,30H ; isi akumulator dengan bilangan 30 heksadesimal
Address A Opcode
Instruction
Memory
Operand
+: Panjang word sebesar N, dapat digunakan sebuah alamat 2
N
- :
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 dalam
memori , yang pada gilirannya akan berisi alamat operand
yang panjang
EA=(A)
May be nested, multilevel, cascaded
e.g. EA = (((A)))
Tambahkan isi memori
yang ditunjuk oleh isi
alamat A ke Akumulator
ADD(A)
Tambahkan isi RAM yang
lokasinya ditunjukan oleh
register R1 ke akumulator.
ADD
A,R
19
Address A Opcode
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 R Opcode
Instruction
Registers
Operand
Kelebihan
Diperlukan field alamat berukuran kecil dalam
instruksi dan tidak diperlukan referensi memori.
Akses ke register lebih cepat daripada akses ke
memori, sehingga proses eksekusi akan lebih
cepat
Kerugian
Ruang alamat sangat terbatas
24
Analog dengan Indrect Addressing
Perbedaan
Apakah field alamat mereferensi ke lokasi memori atau
Register
EA=( R )
25
Keuntungan dan keterbatasan pengalamatan
register tidak langsung pada dasarnya sama
dengan pengalamatan tidak langsung
Keterbatasan field alamat diatasi dengan membiarkan
field tersebut mereferensi ke lokasi panjang word yang
berisi alamat.
Dalam satu siklus pengambilan dan penyimpanan, mode
pengalamtan register tidak langsung hanya
menggunakan satu referensi memori utama sehingga
lebih cepat daripada mode pengalamatan tidak langsung.
26
Register Address R Opcode
Instruction
Memory
Operand Pointer to Operand
Registers
Menggabungkan kemampuan direct addressing dan
register indirect addresing
Mode ini mensyaratkan instruksi memiliki dua buah
field 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 R Opcode
Instruction
Memory
Operand
Pointer to Operand
Registers
Address A
+
Register yang direferensikan secara implisit adalah
program 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 itu
ditambahkan ke field alamat untuk menghasilkan EA
30
Register yang direferensikan berisi
sebuah alamat memori dan field alamat
berisi perpindahan dari alamat itu.
Referensi register dapat eksplisit
maupun 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 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 ponter mereferensi ke elemen ketiga stack.
Stack pointer tetap berada di dalam register.
Dengan demikian, referensi referensi ke lokasi stack di dalam
memori pada dasarnya merupakan pengalamatan register tidak
langsung
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 bahasa
tingkat tinggi mengeksekusinya secara lebih efisien
(C/Fortran)
36
37
Register merupakan sebagian memori dari
mikroprosesor yang dapat diakses dengan
kecepatan yang sangat tinggi.
Dalam melakukan pekerjaannya mikroprosesor
selalu menggunakan register-register sebagai
perantaranya, jadi register dapat diibaratkan sebagai
kaki dan tangannya mikroprosesor
Dalam pemrograman dengan bahasa Assembly, mau
tidak mau anda harus berhubungan dengan apa
yang dinamakan sebagai Register
Register segmen
Register yang digunakan untuk menentukan referensi
tertentu , 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 dari
segmen yang sedang aktif.
Register CS(Code
Segment)
Menunjukkan letak dari segmen yang
digunakan oleh stack.
Register SS(Stack
Segment)
Digunakan untuk menunjukkan tempat segmen
dimana data-data pada program disimpan.
Register DS(Data
Segment)
Digunakan untuk menunjukkan suatu alamat di
memory, misalkan alamat memory video
Register ES(Extra
Segment),
Pada prosesor 80386 terdapat tambahan register segment 16 bit, yaitu
FS<Extra Segment> dan GS<Extra Segment>.
41
Immediate
Register
operand
Displacement
Base
Base with
displacement
Scaled index
with
displacement
Base with
index and
displacement
Base scaled
index with
displacement
Relative
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 dengan
displacement 8, 16, atau 32 bit.
Dengan segmentasi, seluruh alamat dalam instruksi
mengacu ke sebuah offset di dalam segmen.
Dalam Pentium, mode ini digunakan untuk mereferensi
variabel 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 menunjuk
awal daerah local variabel.
Digunakan untuk mengakses field sebuah
record
Scale Index With Displacement
Mode ini sangat cocok untuk pengindeksan
array
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 dua
dimensi
Base scaled index with displacement mode
Menjumlahkan isi index register yang dikalikan dengan skala, isi
register basis dan displacement untuk mendapatkan effective address
Mode ini cukup efisien dalam melakukan pengindeksan array dua
dimensi apabila panjang arraynya sama dengan 2,4 atau 8 byte
Relative mode
Digunakan untuk tranfer control
45
Stallings Wiliams,Computer Organization and
Architecture
46

Anda mungkin juga menyukai