SET INSTRUKSI & PENGALAMATAN
KELOMPOK 6:
1.
Achmad Hasyim Bin Smith
2.
Elisa Eka Shinta Pratiwi
3.
Indah Rosyidah
4.
Mohamad Safrial
5.
Muhammad Luthfy
SISTEM INFORMASI
UNIVERSITAS GUNADARMA
Karakteristik
Instruksi Mesin
·
Karakteristik adalah ciri-ciri khusus atau mempunyai
sifat khas sesuai dengan perwatakan tertentu
·
Instruksi adalah perintah atau arahan (untuk melakukan
suatu pekerjaan atau melaksanakan suatu tugas
·
Mesin adalah perkakas untuk menggerakkan, atau membuat
sesuatu yang dijalankan dengan roda-roda dan digerakkan oleh tenaga manusia
atau motor penggerak yang menggunakan bahan bakar minyak atau tenaga alam
·
karakteristik-karakteristik instruksi mesin adalah ciri-ciri
khusus atau sifat khas yang dimiliki oleh instruksi-instruksi atau kode operasi
dalam pemrograman komputer
·
Instruksi mesin (machine instruction) yang dieksekusi
membentuk suatu operasi dan berbagai macam fungsi CPU.
·
Kumpulan fungsi yang dapat dieksekusi CPU disebut set
instruksi (instruction set) CPU.
·
Mempelajari karakteristik instruksi mesin, meliputi :
- Elemen-elemen
instruksi mesin
- Representasi
instruksinya
- Jenis-jenis
instruksi
- Penggunaan
alamat
- Rancangan
set instruksi
Elemen
Instruksi Mesin
Untuk dapat
dieksekusi suatu instruksi harus berisi elemen informasi yang diperlukan CPU
secara lengkap dan jelas, antara lain :
- Operation
code (Op code)
Menspesifikasi operasi yang akan dilakukan. Kode operasi berbentuk kode biner. - Source
Operand reference
Operasi dapat berasal dari lebih satu sumber. Operand adalah input operasi. - Result
Operand reference
Merupakan hasil atau keluaran operasi - Next
Instruction reference
Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi.
Operand dari
Operasi
Melihat dari
sumbernya, operand suatu operasi dapat berada di salah satu dari ketiga daerah
berikut ini :
- Memori
utama atau memori virtual
- Register
CPU
- Perangkat
I/O
·
Tipe-tipe operand diantaranya :
·
1. Addresses (akan dibahas pada
addressing modes)
2. Numbers :
- Integer or fixed point
- Floating point
- Decimal (BCD)
3. Characters :
- ASCII
- EBCDIC
4. Logical Data : Bila data berbentuk binary: 0 dan 1
2. Numbers :
- Integer or fixed point
- Floating point
- Decimal (BCD)
3. Characters :
- ASCII
- EBCDIC
4. Logical Data : Bila data berbentuk binary: 0 dan 1
Jenis-jenis operator adalah sebagai
berikut :
·
1. Operator Aritmetika
Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
·
2. Operator relational
Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).
Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).
·
3. Operator Logik
Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).
Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).
Tindakan CPU sama dengan arithmetic
Operasi set instruksi untuk operasi logical :
1. AND, OR, NOT, EXOR
2. COMPARE : melakukan perbandingan logika.
3. TEST : menguji kondisi tertentu.
4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
5. ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin
Representasi
Instruksi
- Instruksi
komputer direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi
beberapa field.
- Field-field
ini diisi oleh elemen-elemen instruksi yang membawa informasi bagi operasi
CPU.
- Layout
instruksi dikenal dengan format instruksi.
- Kode
operasi (op code) direpresentasikan 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
Contoh
representasi operand secara simbolik :
- ADD X,
Y artinya tambahkan nilai yang berada pada lokasi Y ke isi register X, dan
simpan hasilnya di register X.
- Programmer
dapat menuliskan program bahasa mesin dalam bentuk simbolik.
- Setiap
op code simbolik memiliki representasi biner yang tetap dan programmer
dapat menetapkan lokasi masing-masing operand.
Jenis -
Jenis Instruksi
Contoh suatu
ekspresi bilangan :
X = X + Y;
X dan Y
berkorespondensi dengan lokasi 513 dan 514.
Pernyataan
dalam bahasa tingkat tinggi tersebut menginstruksikan komputer untuk melakukan
langkah berikut ini :
- Muatkan
sebuah register dengan isi lokasi memori 513.
- Tambahkan
isi lokasi memori 514 ke register.
- Simpan
isi register ke lokasi memori 513.
Korelasi
- Terlihat
hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa mesin.
- Dalam
bahasa tingkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat
menggunakan variabel.
- Dalam
bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan antar
register.
Jenis-Jenis
Instruksi
- Pengolahan
data (data processing),
meliputi operasi-operasi aritmetika dan logika. Operasi aritmetika memiliki kemampuan komputasi untuk pengolahan data numerik. Sedangkan instruksi logika beroperasi terhadap bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk pengolahan data lain. - Perpindahan
data(data movement),
berisi instruksi perpindahan data antar register maupun modul I/O. Untuk dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas memindahkan data operand yang diperlukan. - Penyimpanan
data (data storage),
berisi instruksi-instruksi penyimpanan ke memori. Instruksi penyimpanan sangat penting dalam operasi komputasi, karena data tersebut akan digunakan untuk operasi berikutnya, minimal untuk ditampilkan pada layar harus diadakan penyimpanan walaupun sementara. - Kontrol
aliran program (program flow control),
berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.
Jumlah
Alamat
- Jumlah
register atau alamat yang digunakan dalam operasi CPU tergantung format
operasi masing-masing CPU.
- Ada
format operasi yang menggunakan 3, 2, 1 dan 0 register.
- Umumnya
yang digunakan adalah 2 register dalam suatu operasi. Desain CPU saat ini
telah menggunakan 3 alamat dalam suatu operasi, terutama dalam MIPS
(Million Instruction per Second).
- Alamat
per instruksi yang lebih sedikit akan membuat instruksi lebih sederhana
dan pendek, tetapi lebih sulit mengimplementasikan fungsi-fungsi yang kita
inginkan.
- Karena
instruksi CPU sederhana maka rancangan CPU juga lebih sederhana.
- Jumlah
bit dan referensi per instruksi lebih sedikit sehingga fetch dan eksekusi
lebih cepat.
- Jumlah
instruksi per program biasanya jauh lebih banyak.
- Pada
jumlah alamat per instruksi banyak, jumlah bit dan referensi instruksi
lebih banyak sehingga waktu eksekusi lebih lama.
- Diperlukan
register CPU yang banyak, namun operasi antar register lebih cepat.
- Lebih
mudah mengimplementasikan fungsi-fungsi yang kita inginkan.
- Jumlah
instruksi per program jauh lebih sedikit.
- Untuk
lebih jelas perhatikan contoh instruksi-instruksi dengan jumlah register
berbeda untuk menyelesaikan persoalan yang sama.
- Contoh
penggunaan set instruksi dengan alamat 1, 2, dan 3 untuk menyelesaikan
operasi hitungan.
Y = (A - B)
/ (C + D * E)
Saya akan
mencoba menjelaskan ketiga instruksi di atas.
Untuk
instruksi 3 alamat :
- Pertama,
A - B lalu disimpan di Y.
- Lalu
kita mengalikan D dan E lalu disimpan di register baru yaitu T.
- T
tersebut lalu ditambahkan dengan register C dan disimpan di register T.
- Lalu
register Y, yaitu hasil dari A - B tadi dibagi dengan register T lalu
disimpan di register Y.
- Bisa
kita lihat,untuk instruksi 3 alamat, setiap instruksi terdiri dari 3
register.
Instruksi 2
alamat :
- Pertama
register A dipindahkan ke Y.
- Register
Y dikurangi dengan register B dan disimpan di register Y. A - B sudah
didapatkan, simpan di register Y.
- Selanjutnya
register D dipindahkan ke register T, lalu register T dikalikan dengan
register E dan disimpan di register T. Singkatnya, D*E itu sama dengan T*E
dan disimpan di register T, cara ini digunakan karena kita memakain
instruksi 2 alamat.
- Lalu
register T ditambahkan dengan register C dan disimpan di register T.
- (C + D
* E) sudah didapatkan dan disimpan di register T.
- Lalu
terakhir register Y yang sudah kita dapatkan tadi dibagi dengan register T
dan disimpan di register Y.
- Bisa
kita lihat, instruksi 2 alamat memakai 2 instruksi, seperti Y dan A, Y dan
B, T dan D, dan seterusnya.
Instruksi 1
alamat :
- Pada
istruksi tentu saja kita hanya menggunakan 1 instruksi.
- Pertama
LOAD D ke AC (Accumulator).
- Lalu AC
dikalikan dengan register E dan disimpan di AC.
- Register
AC lalu ditambahkan dengan register C dan disimpan di register AC.
- Simpan
register AC ke register Y.
- LOAD
lagi register A ke AC.
- Register
AC lalu dikurangkan dengan register B dan disimpan di register AC.
- Lalu
register AC dibagi dengan regiser Y dan disimpan di register AC.
- Simpan
register AC ke register Y.
Spesifikasi instruksi
3 alamat :
- Simbolik
: a = b + c.
- Format
alamat : hasil, operand 1, operand 2.
- Digunakan
dalam arsitektur MIPS.
- Memerlukan
word panjang dalam suatu instruksi.
Spesifikasi
instruksi 2 alamat :
- Simbolik
: a = a + b.
- Satu
alamat diisi operand terlebih dahulu kemudian digunakan untuk menyimpan
hasilnya.
- Tidak
memerlukan instruksi yang panjang.
- Jumlah
instruksi per program akan lebih banyak daripada 3 alamat.
- Diperlukan
penyimpanan sementara untuk menyimpan hasil.
Spesifikasi
instruksi 1 alamat :
- Memerlukan
alamat implisit untuk operasi.
- Menggunakan
register akumulator (AC) dan digunakan pada mesin lama.
Spesifikasi
instruksi 0 alamat :
- Seluruh
alamat yang digunakan implisit.
- Digunakan
pada organisasi memori, terutama operasi stack.
Rancangan
Set Instruksi
- Aspek
paling menarik dalam arsitektur komputer adalah perancangan set instruksi,
karena rancangan ini berpengaruh banyak pada aspek lainnya.
- Set
instruksi menentukan banyak fungsi yang harus dilakukan CPU.
- Set
instruksi merupakan alat bagi para pemrogram untuk mengontrol kerja CPU.
- Pertimbangan
: Kebutuhan pemrogram menjadi bahan pertimbangan dalam merancang set
instruksi.
Masalah
rancangan yang fundamental meliputi :
- Operation
repertoire :
- Berapa
banyak dan operasi-operasi apa yang harus tersedia.
- Sekompleks
apakah operasi itu seharusnya.
- Data
types :
- Jenis
data.
- Format
data.
- Instruction
format :
- Panjang
instruksi.
- Jumlah
alamat.
- Ukuran
field.
- Registers
:
- Jumlah
register CPU yang dapat direferensikan oleh instruksi, dan fungsinya.
- Addressing
:
- Mode untuk menspesifikasi alamat suatu operand.
Tipe Operasi
- Dalam
perancangan arsitektur komputer, jumlah kode operasi akan sangat berbeda
untuk masing-masing komputer, tetapi terdapat kemiripan dalam jenis
operasinya.
Jenis
Operasi Komputer
- Transfer
data. - Konversi
- Aritmetika.
- Input/Output
- Logika.
- Kontrol sistem dan transfer kontrol
Representasi
Instruksi
- Instruksi
komputer direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi
beberapa field.
- Field-field
ini diisi oleh elemen-elemen instruksi yang membawa informasi bagi operasi
CPU.
- Layout
instruksi dikenal dengan format instruksi.
Rancangan
Set Instruksi
- Aspek
paling menarik dalam arsitektur komputer adalah perancangan set instruksi,
karena rancangan ini berpengaruh banyak pada aspek lainnya.
- Set
instruksi menentukan banyak fungsi yang harus dilakukan CPU.
- Set
instruksi merupakan alat bagi para pemrogram untuk mengontrol kerja CPU.
- Pertimbangan
: Kebutuhan pemrogram menjadi bahan pertimbangan dalam merancang set
instruksi.
Masalah
rancangan yang fundamental meliputi :
- Operation
repertoire :
- Berapa
banyak dan operasi-operasi apa yang harus tersedia.
- Sekompleks
apakah operasi itu seharusnya.
- Data
types :
- Jenis
data.
- Format
data.
- Instruction
format :
- Panjang
instruksi.
- Jumlah
alamat.
- Ukuran
field.
- Registers
:
- Jumlah
register CPU yang dapat direferensikan oleh instruksi, dan fungsinya.
- Addressing
:
- Mode
untuk menspesifikasi alamat suatu operand.
Pengalamatan
Metode
pengalamatan adalah bagaimana cara menunjuk dan mengalamati suatu lokasi
memori pada sebuah alamat di mana operand akan diambil. Mode pengalamatan
diterapkan pada set instruksi, pengalamatan memberikan fleksibilitas khusus
yang sangat penting. Mode pengalamatan ini meliputi direct addressing, indirect
addressing, dan immediate addressing.
1. Direct Addresing
Dalam mode
pengalamatan direct addressing, harga yang akan dipakai diambil langsung dalam
alamat memori lain. Contohnya: MOV A,30h. Dalam instruksi ini akan dibaca data
dari RAM internal dengan alamat 30h dan kemudian disimpan dalam akumulator.
Mode pengalamatan ini cukup cepat, meskipun harga yang didapat tidak langsung
seperti immediate, namun cukup cepat karena disimpan dalam RAM internal.
Demikian pula akan lebih mudah menggunakan mode ini daripada mode immediate
karena harga yang didapat bisa dari lokasi memori yang mungkin variabel.
Kelebihan
dan kekurangan dari Direct Addresing antara lain :
- Kelebihan
- Field
alamat berisi efektif address sebuah operand
- Kelemahan
- Keterbatasan
field alamat karena panjang field alamat biasanya lebih kecil dibandingkan
panjang word
2. Indirect
Addresing
Mode
pengalamatan indirect addressing sangat berguna karena dapat memberikan
fleksibilitas tinggi dalam mengalamati suatu harga. Mode ini pula satu-satunya
cara untuk mengakses 128 byte lebih dari RAM internal pada keluarga 8052.
Contoh: MOV A,@R0. Dalam instruksi tersebut, 89C51 akan mengambil harga yang
berada pada alamat memori yang ditunjukkan oleh isi dari R0 dan kemudian
mengisikannya ke akumulator. Mode pengalamatan indirect addressing selalu
merujuk pada RAM internal dan tidak pernah merujuk pada SFR. Karena itu,
menggunakan mode ini untuk mengalamati alamat lebih dari 7Fh hanya digunakan
untuk keluarga 8052 yang memiliki 256 byte spasi RAM internal.
Kelebihan
dan kekurangan dari Indirect Addresing antara lain :
- Kelebihan
- Ruang
bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat
referensi
- Kekurangan
- Diperlukan
referensi memori ganda dalam satu fetch sehingga memperlambat preoses
operasi
3. Immediate
Addresing
Mode
pengalamatan immediate addressing sangat umum dipakai karena harga yang akan
disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata
lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan.
Contohnya: MOV A,#20h. Dalam instruksi tersebut, akumulator akan diisi dengan
harga yang langsung mengikutinya, dalam hal ini 20h. Mode ini sangatlah cepat
karena harga yang dipakai langsung tersedia.
Kelebihan
dan kekurangan dari Immedieate Addresing antara lain :
- Keuntungan
- Tidak
adanya referensi memori selain dari instruksi yang diperlukan untuk
memperoleh operand
- Menghemat
siklus instruksi sehingga proses keseluruhan akan cepat
- Kekurangan
- Ukuran
bilangan dibatasi oleh ukuran field alamat
Pengenalan
pada Register Addressing
Register
adalah merupakan sebagian memori dari mikro prosessor yang dapat diakses dengan
kecepatan tinggi. Metode pengalamatan register ini mirip dengan mode
pengalamatan langsung. Perbedaannya terletak pada field alamat yang mengacu
pada register, bukan pada memori utama. Field yang mereferensi register
memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register
general purpose.
Kelebihan
dan kekurangan Register Addressing :
- Keuntungan
pengalamatan register
- 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
- Kerugian
- Ruang
alamat menjadi terbatas
Register Indirect
Addressing
Metode
pengalamatan register tidak langsung mirip dengan mode 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, mode pengalamatan register tidak
langsung hanya menggunakan satu referensi memori utama sehingga lebih
cepat daripada mode pengalamatan tidak langsung.
C.
Pengenalan Displacement Addressing dan Stack Addresing
Displacement
Addressing adalah menggabungkan kemampuan pengalamatan langsung dan
pengalamatan register tidak langsung. Mode 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 : Relative addressing, Base register addressing, Indexing
- Relative
addressing
Register
yang direferensi secara implisit adalah progra counter (PC)
- Alamat
efektif relative addresing didapatkan dari alamat instruksi saat itu
ditambahkan ke field alamat
- Relativ
addressing memanfaatkan konsep lokalitas memori untuk menyediakan
operand-operand berikutnya
- Base
register addresing, register yang direferensi berisi sebuah alamat memori,
dan field alamat berisi perpindahan dari alamat itu
- Referensi
register dapat eksplisit maupun implisit
- Memanfaatkan
konsep lokalitas memori
- Indexing
adalah field alamat mereferensi alamat memori utama, dan register yang
direferensikan berisi pemindahan positif dari alamat tersebut
- Merupakan
kebalikan dari mode base register
- Field
alamat dianggap sebagai alamat memori dalam indexing
- Manfaat
penting dari indexing adalah untuk eksekusi program-program iterative
Stack adalah
array lokasi yang linier = pushdown list = last-in-first-out. Stack 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 stack. Stack pointer tetap berada dalam
register
Dengan
demikian, referensi-referensi ke lokasi stack di dalam memori pada
dasarnya merupakan pengalamatan register tidak langsung
Kesimpulan
·
Dapat ditarik kesimpulan bahwa instruksi-instruksi
mesin harus mampu mengolah data sebagai implementasi keinginan-keinginan
kita
·
Terdapat kumpulan unit set instruksi yang dapat
digolongkan dalam jenis-jenisnya, yaitu :
1. Pengolahan data (data processing)
Meliputi
operasi-operasi aritmatika dan logika, operasi aritmatika memiliki kemapuna
komputasi untuk pengolahan data numrik, sedangkan instruksi logika beroperasi
terhadap bit-bit, bukannya sebagi bilangan, sehingga insrtuksi ini memiliki
kemampuan untuk pengolahan data lain.
2. Perpindahan data ( data movement)
Berisi
instruksi perpindahan data antar register maupun modul I/O.untuk dapat diolah
oleh CPU maka diperlukan operasi-operasi yang bertugas memindahkan data operand
yang diperlukan.
3. Penyimpanan data ( data storage)
Berisi
instruksi-instruksi penyimpanan ke memori, instruksi penyimpanan sangat penting
dalam operasi komputasi, karena data tersebut akan digunakan untuk operasi
berikutnya, minimal untuk ditampilkan pada layar harus diadakanpenyimpanan
walaupun sementara
4. Control aliran program ( program
flow control)
Berisi
instruksi pengontrolan operasi dan pencabangan, instruksi ini berguna untuk
pengontrolan status dan mengoperasikan pencabangan ke set instruksi lain.
sumber:
http://adi-lecture.blogspot.com/2013/02/set-instruksi-dan-pengalamatan.html
http://efendi2612.files.wordpress.com/2010/11/mode-pengalamatan.ppt
http://eprints.undip.ac.id/22782/1/Pert10.pdf
No comments:
Post a Comment