Materi Set Intruksi
1.1 Arsitektur
Set Instruksi
Set instruksi didefinisikan sebagai suatu aspek dalam
arsitektur komputer yang dapat dilihat oleh para pemrogram.
a. Dua bagian utama arsitektur
komputer:
1.
Instruction set architecture (ISA) / arsitektur set instruksi ISA meliputi
spesifikasi yang menentukan bagaimana programmer bahasa mesin akan
berinteraksi oleh komputer. ISA menentukan sifat komputasional komputer.
2.
Hardware system architecture (HSA) / arsitektur system hardware HSA
berkaitan dengan subsistem hardware utama computer (CPU,
system memori dan IO). HSA mencakup desain logis dan organisasi arus data
dari subsistem
1.2
Elemen-Elemen Dari Instruksi Mesin (Set Instruksi)
a.
Operation Code (opcode) : menentukan operasi yang akan dilaksanakan (misalnya:
ADD).
b.
Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan
c.
Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
d.
Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi
berikutnya setelah instruksi yang dijalankan selesai.
e.
Source dan result operands dapat berupa salah satu diantara tiga jenis berikut
ini:
• Main
or Virtual Memory
•
CPU
Register
• I/O
Device
1.3 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.
Format Instruksi
·
Kode operasi (op code)
direpresentasikan dengan singkatan-singkatan, yang disebut mnemonic.
Mnemonic mengindikasikan suatu
operasi bagi CPU.
Contoh mnemonic adalah :
LOAD = muatkan data ke mem
ADD
Add (Penambahan)
SUB
Substract (Pengurangan)
MPY
Multiply (Perkalian)
DIV
Divide (Pembagian)
STOR Simpan
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.
1.4
Jenis-Jens Instruksi
a. Data processing/pengolahan
data : instruksi aritmetika dan logika
b. Data storage/penyimpanan
data: instruksi-instruksi memori
c. Data movement/perpindahan
data: instruksi I/O
d. Control/control : instruksi
pemeriksaan dan percabangan
1.5 Jumlah Alamat
Salah satu cara tradisional
untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat
yang terkandung dalam setiap instruksinya.
Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya
Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya
1.6 Rancangan
Set Instruksi
Salah satu aspek yang menarik
tentang rancangan komputer adalah rancangan set instruksi (instruction set
design). Karena rancangan ini mempengaruhi banyak aspek sistem komputer, maka
rancangan set instruksi sangat kompleks. Set instruksi menentukan banyak fungsi
yang akan dilakukan oleh CPU dan karena itu memiliki efek yang sangat
menentukan implementasi CPU. Set instruksi merupakan alat bagi para pemrogram
untuk mengontrol CPU. Masalah rancangan fundamental yang paling penting
meliputi :
1. Operation
Repertoire/Repertoir Operasi
Berapa
banyak dan operasi-operasi apa yang harus disediakan, dan sekompleks apakah
operasi itu seharusnya.
2. Data Types/Jenis Data
Berbagai
jenis data pada saat operasi dijalankan.
3. Instruction Format/Format
Instruksi
Panjang
instruksi (dalam bit), jumlah alamat, ukuran field, dsb.
4. Registers
Jumlah
register CPU yang dapat direferensikan oleh instruksi, dan fungsinya.
5. Addressing/Pengalamatan
Mode untuk menspesifikasikan alamat suatu operand. Masalah-masalah ini
saling berkaitan dan harus diperhatikan dalam merancang set instruksi.
1.7
Karakteristik Dan Fungsi Set Instruksi
a.
Operasi dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau
dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine
instructions) atau instruksi komputer (computer instructions)
b.
Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU
disebut set Instruksi (Instruction Set
1.8
Desain Set Instruksi
a.
Desain set instruksi merupakan masalah yang sangat komplek
yang
melibatkan banyak aspek, diantaranya
adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas :
- Source code compatibility
- Object code Compatibility
Selain ketiga aspek tersebut juga
melibatkan hal-hal sebagai berikut:
1.
Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan,
dan berapa sulit operasinya
2.
Data Types: tipe/jenis data yang dapat olah Instruction Format: panjangnya,
banyaknya alamat, dsb.
3.
Register: Banyaknya register yang dapat digunakan
4.
Addressing: Mode pengalamatan untuk operand
1.9
Jenis-Jenis Operand
a.
Addresses (akan dibahas pada addressing modes)
b.
Numbers : - Integer or fixed point
Floating point
Decimal (BCD)
c.
Characters : - ASCII
- EBCDIC
d. Logical Data :
Bila data berbentuk binary : 0 dan 1
1.10
Transfer Data
Menetapkan
lokasi operand sumber dan operand tujuan.
Lokasi-lokasi tersebut dapat berupa
memori, register atau bagian paling atas daripada stack.
·
Menetapkan panjang data yang dipindahkan.
·
Menetapkan mode pengalamatan.
Tindakan CPU untuk melakukan
transfer data adalah :
a. Memindahkan data dari satu
lokasi ke lokasi lain
b. Apabila memori dilibatkan :
Menetapkan alamat memori.
Menjalankan transformasi alamat
memori virtual ke alamat
memori aktual.
Mengawali pembacaan / penulisan
memori
1.11
Operasi Set Instruksi Untuk Transfer Data
a.
MOVE : memindahkan word atau blok dari sumber ke tujuan
b.
STORE : memindahkan word dari prosesor ke memori
c.
LOAD : memindahkan word dari memori ke prosesor
d.
EXCHANGE : menukar isi sumber ke tujuan
e.
CLEAR / RESET : memindahkan word 0 ke tujuan
f.
SET : memindahkan word 1 ke tujuan
g.
PUSH : memindahkan word dari sumber ke bagian paling atas stack
h. POP
: memindahkan word dari bagian paling atas sumber
1.12 contoh set intruksi
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.
0 komentar: