Dokumen tersebut membahas tentang set instruksi komputer yang meliputi elemen-elemen instruksi mesin seperti kode operasi, operand sumber dan hasil, instruksi berikutnya, jenis operand dan operasi, representasi instruksi, karakteristik instruksi mesin, dan pengalamatan.
1. Tugas Kelompok Arsitektur Komputer
Set Instruksi
Nama Kelompok :
Muhammad David Siregar 15113862
Puspita Kusumaningrum 16113967
Rizky Nugraha 17113989
Rikky Iriantono Perdana 17113700
Yoga Noviantono 19113457
Kelas : 2KA04
Universitas Gunadarma
2. Set Instruksi
Set instruksi (instruction set) adalah sekumpulan lengkap instruksi yang dapat di
mengerti oleh sebuah CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine
code), karna aslinya juga berbentuk biner kemudian dimengerti sebagai bahasa assembly, untuk
konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti
oleh manusia.
Sebuah instruksi terdiri dari sebuah opcode, biasanya bersama dengan beberapa informasi
tambahan seperti darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan.
Subyek umum untuk menspesifikasikan di mana operand-operand berada (yaitu, alamat-alamatnya)
disebut pengalamatan
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.
Jadi, karakteristik-karakteristik instruksi mesin adalah ciri-ciri khusus atau sifat khas
yang dimiliki oleh instruksi-instruksi atau kode operasi dalam pemrograman komputer.. Operasi
CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal
sebagai intruksi mesin atau instruksi computer. Set fungsi dari instruksi-instruksi yang berbeda
yang dapat di eksekusi oleh CPU dikenal sebagai set instruksi CPU.
A. Elemen-elemen Instuksi Mesin
Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi.
langkah-langkah dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin, adalah
sebagai berikut :
Kode Operasi : menentukan operasi-operasi yang akan dilakukan (misalnya: ADD,I/O). Operasi
itu dispesifilan oleh sebuah kode biner, dikenal sebagai kode operasi.
Acuan Operand Sumber : Operasi dapat melibatkan satu atau lebih operand sumber, dengan kata
lain, operand adalah input bagi operasi.
Acuan Operand Hasil: Operasi dapat menghasilkan sebuah hasil.
Acuan Instruksi Berikutnya: Elemen ini memberitahukan CPU posisi instruksi berikutnya yang
harus diambil setelah menyelesaikan eksekusi suatu instruksi. Instuksi berikutnya yang akan
3. diambil berada di memori utama atau pada system memori virtual, akan berada baik di dalam
memori utama atau memori sekunder. Maka alamat memori utama atau alamat memori virtual
harus disiapkan. Operand sumber dan hasil dapat berada di salah satu dari ketiga daerah berikut
ini:
Memori Utama atau Memori Virtual: Dengan adanya acuan instruksi berikutnya, maka alamat
memori utama atau memori virtual harus diketahui.
Register CPU: Dengan suatu pengecualian yang jarang terjadi, CPU terdiri dari sebuah register
atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Bila hanya terdapat sebuah register
saja, maka acuan ke instruksi tersebut dapat berbentuk implicit. Sedangkan jika terdapat lebih
dari satu register, maka setiap register diberi nomor yang unik, dan instruksi harus terdiri dari
nomor register yang dimaksud.
Perangkat I/O: Instruksi harus menspesifikan modul I/O dan perangkat yang diperlukan oleh
operasi. Jika digunakan I/O memori terpetakan, maka perangkat ini merupakan memori utama
atau memori virtual.
B. Representasi Instruksi
Di dalam computer, instruksi dipresentasikan oleh sehimpunan bit. Himpunan bit ini
dibagi menjadi beberapa bidang, dengan bidang-bidang ini berkaitan dengan elemen-elemen
yang akan memuat instruksi. Selama berlangsungnya eksekusi instruksi, instruksi dibaca ke
dalam register instruksi yang terdapat dalam CPU. Untuk melakukan operasi yang diperlukan,
CPU harus dapat mengeluarkan data dari berbagai bidang instruksi. Opcode direpresentasikan
dengan singkatan-singkatan, yang disebut mnemorik, yang mengindikasikan operasi, contohnya
adalah:
-ADD Add (Menambahkan)
-SUB Substract (Pengurangan)
-MPY Multiply (Perkalian)
-DIV Divide (Pembagian)
-LOAD Muatkan data data dari memori
-STOR Simpan data ke memori
Operand-operand juga direpresentasikan secara simbolik. Misalnya instruksi ADD R,Y
Berarti tambahkan niali yang terdapat pada lokasi Y ke isi register R. Dalam contoh ini, Y
berkaitan dengan alamat lokasi di dalam memori, dan R berkaitan dengan register tertentu. Perlu
dicatat bahwa operasi dilakukan terhadap isi alamat, bukan terhadap alamatnya.
4. Sehingga untuk menuliskan program bahasa mesin dalam bentuk simbolik. Setiap opcode
simbolik memiliki representasi biner yang tetap, dan pemrograman dapat menetapkan masing-masing
operand simbolik. Misalnya, pemrograman dapat memulainya dengan definisi-definisi:
-X=523
-Y=514
dan seterusnya. Sebuah program yang sederhana akan menerima input simbol ini, kemudian
mengkonversiakn opcode dan acuan operand menjadi bentuk biner, dan akhirnya membentuk
instruksi mesin biner.
C. Jenis-Jenis Instruksi
Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN. X =
X+Y Pernyataan ini menginstruksiakna komputer untuk menambahkan nilai yang tersimpan di Y
ke nilai yang tersimpan di X dan menyimpan hasilnya di X. Variabel X dan Y berkorespondensi
dengan lokasi 513 dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana, maka
operasi ini dapat dilakukan dengan tiga buah instruksi:
1. Muatkan sebuah register dengan isi lokasi memori 513
2. Tambahkan isi lokasi memori ke register
3. Simpan isi register di lokasi memori 513
Suatu komputer harus memiliki set instruksi yang memungkinkan pengguna untuk
memformulasikan pengolahan data atau dengan memperhatikan kemampuan pemrograman
bahasa tingkat tinggi. Agar dapat dieksekusi, setiap program yang ditulis dalam bahasa program
tingkat tinggi harus diterjemahkan ke dalam bahasa mesin. Jadi, set instruksi mesin harus dapat
mengekspresikan setiap instruksi bahas atingkat tinggi.
Adapun Jenis-jenis instrusi sebagai berikut:
- Pengolahan Data : Instrusi-instruksi aritmatika dan logika
- Penyimpanan Data : Instriksi-instruksi memori
- Perpindahan Data : Instruksi I/O
- Kontrol : Instruksi pemeriksaan dan percabangan
5. D. Jumlah Alamat
Salah satu cara tradisional dalam menjelaskan arsitektur prosesor adalah dengan memakai
jumlah alamat yang terdapat pada masing-masing instruksi. Instruksi aritmatika dan logika
memerlukan operand yang berjumlah banyak. Secara virtual, seluruh operasi eritmatika dan
logika merupakan uner/unary (satu operand) atau biner (dua operand). Dengan demikian,
memerlukan maksimum dua alamat untuk acuan operand. Hasil sebuah operasi akan
memerlukan alamat ketiga.
Dengan demikian, instruksi perlu memiliki empat buah acuan alamat: dua buah operand,
sebuah hasil operasi, dan sebuah alamat instruksi berikutnya. Sebagian besar CPU merupakan
variasi satu, dua, atau tiga alamat dengan alamat instruksi berikutnya merupakan implisit
(diperoleh dari pencacah program). Format tiga alamat tidak umum digunakan, karena instruksi-instruksi
tersebut memerlukan bentuk instruksi yang lebih relatif lebih panjang untuk
menampung acuan-acuan tiga alamat. Sedangkan bentuk dua alamat mengurangi kebuatuahan
ruang akan tetapi menimbulkan kesulitan. Instruksi yang lebih sederhana adalah instruksi satu
alamat. Agar alamat ini dapat berfungsi, alamat perlu diimplisitkan.
E. Rancangan Set Instruksi
Salah satu hal yang paling menarik tentang rancangan komputer adalah rancangan set
instruksi. 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 pemrogram untuk mengontrol CPU. Dengan demikian, kebutuhan-kebutuhan
pemrogram harus menjadi bahan pertimbangan dalam merancang set
instruksi. Masalah rancangan fundamental yang paling signifikan meliputi:
- Repertoir Operasi: Berapa banyak dan opersai-operasi apa yang harus disediakan, dan
sekompleks apakah operasi itu seharusnya.
- Jenis data : berbagai jenis data pada saat operasi dijalankan
- Bentuk instruksi : Panjang instruksi (dalam bit), jumlah alamat, ukuran bidang, dan
sebagainya.
- Register : Jumlah register CPU yang dapat diacu oleh instruksi, dan fungsinya.
- Pengalamatan: Mode untuk menspesifikasikan alamat suatu operand.
6. TIPE TIPE OPERAND
Operation Code / Kode Operasi : Menspesifikasikan operasi yang akan dilakukan
(misalnya, ADD). Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi,
atau opcode.
Operand : Adalah bagian daripada instruksi komputer yang menspesifikasikan data apa
yang hendak dimanipulasi atau dilakukan operasi terhadapnya, dan pada waktu yang bersamaan
merepresentasikan sebagai data itu sendiri. Jenis operand secara khusus yang digunakan sebagai
elemen dari instruksi mesin adalah :
- Source Operand Reference / Referensi Operand Sumber : Operasi dapat mencakup satu atau
lebih sumber, operand merupakan input bagi operasi.
- Result Operand Reference / Referensi Operand Hasil : Adalah operand yang dapat
membuat hasil dari operasi.
Sumber dan hasil operand dapat berada di salah satu dari ketiga daerah ini :
a. Memori utama atau memori virtual: dengan referensi alamat berikutnya, maka alamat
memori utama atau virtual harus diketahui.
b. Register CPU : instruksi harus diberi nomor register yang dimaksud.
c. Perangkat I/O : instruksi harus menspesifikasikan modul I/O yang diperlukan oleh operasi.
- Next Instruction Reference / Referensi Operand Selanjutnya : Berfungsi untuk memberitahu
CPU posisi instruksi yang berikutnya yang harus diambil setelah menyelesaikan eksekusi atau
instruksi.
~ TIPE-TIPE OPERAND
1. Address
2. Numbers :
- Integer atau fixed point
- Floating point
- Decimal (BCD)
3. Characters :
- ASCII (American Standard Code for Information Interchange)
- EBCDIC (Extended Binary Coded Decimal Interchange Code)
7. 4. Logical Data :
- Bits
- Flag
TIPE TIPE OPERASI
~TIPE-TIPE OPERASI
A. Operasi Set Instruksi Untuk Transfer Data :
• MOVE : Memindahkan word atau blok dari sumber ke tujuan
• STORE : Memindahkan word dari prosesor ke memori.
• LOAD : Memindahkan word dari memori ke prosesor.
• EXCHANGE : Menukar isi sumber ke tujuan.
• CLEAR / RESET : Memindahkan word 0 ke tujuan.
• SET : Memindahkan word 1 ke tujuan.
• PUSH : Memindahkan word dari sumber ke bagian paling atas stack.
• POP : Memindahkan word dari bgian paling atas sumber
B. Operasi Set Instruksi Untuk Arithmetic :
• ADD : Penjumlahan
• SUBTRACT : Pengurangan
• MULTIPLY : Perkalian
• DIVIDE : Pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
8. Urutan 5 sampai 8 merupakan instruksi operand tunggal.
C. Operasi Set Instruksi Untuk Operasi Logical :
• AND, OR, NOT, EXOR
•COMPARE : Melakukan perbandingan logika.
• 3 TEST : Menguji kondisi tertentu.
• SHIFT : Operand menggeser ke kiri atau ke kanan menyebabkan konstanta pada
ujung bit.
•Rotate : Operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
D. Operasi Set Instruksi Untuk Conversi :
• TRANSLATE : Menterjemahkan nilai-nilai dalam suatu bagian memori berdasarkan
tabel korespondensi.
• CONVERT : Mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
E. Operasi Set Instruksi Input / Output :
• INPUT : Memindahkan data dari perangkat I/O tertentu ke tujuan.
• OUTPUT : Memindahkan data dari sumber tertentu ke perangkat I/O.
• START I/O : Memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O.
• TEST I/O : Memindahkan informasi dari sistem I/O ke tujuan.
F. Operasi Set Instruksi Untuk Transfer Control :
• JUMP (cabang) : Pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
• JUMP BERSYARAT : Menguji persyaratan tertentu dan memuat PC dengan alamat tertentu
atau tidak melakukan apa tergantung dari persyaratan.
• JUMP SUBRUTIN : Melompat ke alamat tertentu.
• RETURN : Mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
9. • EXECUTE : Mengambil operand dari lokasi tertentu dan mengeksekusi sebagai
instruksi.
• SKIP : Menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : Melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan.
• HALT : Menghentikan eksekusi program.
• WAIT (HOLD) : Melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : Tidak ada operasi yang dilakukan.
Pengalamatan
Program biasanya ditulis dalam bahasa tingkat tinggi, yang memungkinkan program
untuk menggunakan konstanta, variable local dan global, pointer, dan array. Pada saat
mentranslasi program bahasa tingkat tinggi menjadi bahsa assembly, compiler harus mampu
mengimplimentasi konstruksi ini menggunakan fasilitas yang disediakan dalam set instruksi
computer dimana program akan dijalankan. cara yang berbeda dalam menentukan lokasi suatu
operand ditetapkan dalam suatu instruksi yang disebut sebagai mode pengalamatan.
Implementasi variable dan konstanta
Variable dan konstanta adalah tipe data yang paling sederhana dan terdapat dalam hampir
setiap program computer. Dalam bahasa assembley, suatu variable dinyatakan dengan
mengalokasikan suatu register atau lokasi memori untuk menyimpan nilainya. Sehingga nilai
tersebut dapat diubah seperlunya menggunakan instruksi sesuai.
Kita mengakses operand dengan menetapkan nama register atau alamat lokasi memori
tempat operand berada. Definisi yang presisi dari dua mode tersebut adalah:
a) Mode register operand adalah isi register prosesor, nama alamat register dinyatakan dalam
instruksi tersebut.
b) Mode absolute operand adalah lokasi memori, alamat lokasi dinyatakan secara eksplisit
didalam instruksi tersebut. (pada bebrapa bahasa assembly, mode ini disebut direct).
c) Mode immediate operand dinyatakan secara eksplisit dalam instruksi, misalnya, instruksi
Move 200 immediete, RO.
10. Indirection dan pointer
Pada mode pengalamatan berikutnya, instruksi tidak menyatakan operand atau alamatnya
secara eksplisit. Sebaliknya, instruksi menyediakan informasi dari nama alamat memori suatu
operand dapat ditetapkan. Kita menyebut alamat ini sebagai effective address (EA) suatu
operand.
Selain kesederhanaannya yang tampak jelas, pengalamatan indirect melalui memori telah
terbukti memiliki keterbatasan pengunaan sebagai mode pengalamatan, dan jarang di gunakan
dalam computer modern, pengalamatan indirect melalui register digunakan secara luas. Maka
pengalamatan indirect melalui register memungkinkan untuk mengakses variable global dengan
terlebih dahulu me-load alamat operand dalam suatu register.
Secara umu teknik addressing yang sering dilakukan adalah:
1. Immediate Addressing
Operand (data yang akan dikomputasi) berada langsung pada set instruksi.
2. Direct Addressing
Operand berada ada memori, set instruksi memegang alamat lokasi memori dimana
operand tersebut berada.
3. Indirect Addressing
Operand berada pada memori, untuk mendapatkan operand ini CPU harus melakukan
penelusuran dua kali yaitu dari data alamat memori yang ada pada set instruksi serta
alamat yang ditunjuk oleh alamat memori yang diperoleh dari set instruksi tadi.
4. Register Addressing
Operand berada pada register, cara kerjanya mirip dengan direct addressing hanya saja
CPU mengakses alamat register bukan alamat memori.
5. Register Indirect Addressing
Operand berada pada memori, untuk mendapatkan operand CPU harus mengakses
register terlebih dahulu karena informasi lokasi operand berada pada register.
6. Displacement
Operand berada pada memori, cara kerjanya merupakan gabungan dari teknik direct
addressing dan register indirect addressing.
7. Stack
Operand berada pada stack, operand secara berkala dimasukan ke stack sehingga ketika
operand dibutuhkan maka operand sudah berada pada “Top Of The Stack”.
11. Teknik pengalamatan tersebut harus dapat memenuhi kebutuhan komputasi yang
dilakukan oleh computer yang secara garis besar dapat dibagi kedalam tiga kategori
yaitu:
- Operasi load (Memasukan Data).
- Operasi Branch (Percabangan).
- Operasi Aritmatik dan Logika
Format instruksi
Intruksi bahasa mesin
Struktur umum.
Opcode Operand1 Operan2 ……..
Opcode (kode Operasi) :
Operation code, biner tak bertanda yang uni untuk menerangkan
operasi yang harus dieksekusi.
Set intruksi :
Set dari seluruh kode operasi yang diperlukan prosessor pada waktu
mengekseskusi kode operasi i bit, maka jumlah kode operasi (unik)2i.
Menyimpan nilai-nilai yang diperlukan prosessor pada waktu, mengeksekusi
kode operasi. Kolom operand, disebut juga address field, dapat berisi :
1. Data/konstanta yang langsung dipakai pada operasi kode operasi.
2. alamat loksi dimana data tersebut disimpan.
Jumlah maksimum operand dalam suatu computer menunjukkan organisasi
prosessor mesin tersebut.
Ada 5 macam organisasi prosessor(berdasarkan format instruksi) :
1. Prosesor dengan format 4 alamat
1.)Operand kiri
2.)Operand kanan
3.)Hasil operasi
4.)Alamat instruksi selanjutnya.
Opcode Opd1 Opd2 Opd3 Opd4
Opd kiri Opd kanan Hasil next addr.
12. Contoh : a := b + c – d
0110
ADD A B X 0111
SUB X B X 0000
0111
1. ADD b,c,tmp,2
2. SUB tmp,d,a,3
3. ………
Format ini terlalu panjang. Jadi tidak lagi dipergunakan.
2. Prosesor dengan format 3-alamat
1.)Operand kiri
2.)Operand kanan
3.)Hasil operasi
Opcode Opd1 Opd2 Opd3
Opcode Opd1 Opd2 Opd3
Opd kiri Opd kanan hasil
Contoh : a := b + c – d
0110
ADD A B X
SUB X B X
0111
Program biasanya diletakan berurutan dalam satu blok memori. Instruksi
dilaksanakan secara berurutan, kecuali secara ekseplisit dinyatakan (seperti
pada instruksi pencabangan). Pada mesin ini diperlukan register khusus
untuk menyimpan alamat dari instruksi yang akan dieksekusi. Register ini
disebut Program Counter Register(PC).
3. Prosesor 2- alamat :
1.)Operand kiri
2.)Operand kanan
Opcode Opd1 Opd2
Opcode Opd1 Opd2
Opd kiri OPd kanan
13. Perjanjian yang berlaku pada prosessor 3- alamat juga berlaku.
Selain itu hasil sudah ditentukan akan disimpan dimana. Misalnya
pada salah satu operand atau pada register khusus. Jika hasil
diletakan pada salah satu operand (misalnya operand kedua), maka
harus hati-hati karena nilai operand kedua berubah. Gunakan lokasi
sementara untuk mencagahnya.
Contoh : A := B + C – D
0110
ADD B C
SUB B D
MOV A B
0111
0112
Hasil disimpan di operand kiri, dan b,c,d tidak boleh berubah.
MOV tmp ,btmp <-b{memindah b ke lokasi sementara}
ADD tmp,c tmp <-tmp + c
SUB tmp,d tmp <-tmp – d
MOV tmp,a a tmp
STA
4. Prosesor dengan foramat 1-alamat
Hanya memiliki satu operand.
Perlu PC
Perlu PC
Address terurut
Perlu register untuk menyimpan operand
Hasil ditempatkan di register tersebut
Opcode Opd1
0110
LOAD B
AccB
0111
ADD C
AccAcc + C
0112
SUB D
AccAcc - D
0113
STORE A
AAcc
14. Operand kedua dan hasil sudah ditentukan diletakkan dimana, misalnya di
R0.
ADD a berarti R0 = a + R0
5. Prosesor dengan format 0-alamat(Stack machine)
Menggunakan Stack.
Intruksi dengan format inin menasumsikan operand – operand
sudah ada di stack. Hasil operasi akan diletakkan di stack juga.
Ekspresi aritmatika yang akan dijalankan di mesin sudah harus
dalam bentuk/notasi polish.
Contoh mesin 0-alamat adalah kalkulator.
Address space misal : address space 4 bit opcode = 24 = 16
Cell size misal : address space 8 bit opcode = 28 = 256
Opcode
Notasi Ekspresi Aritmatika
1. Infiks A + B
2. Prefiks (Polish notation) + A B
3. Postfix (Reverse Polish notation) A B +
Dengan notasi prefiks, operand pada stack menjadi mudah
1. Baca ekspresi dari kanan ke kiri
2. Jika membaca operand, push operand ke stack
3. Jika membaca operator, pop sejumlah operand dari stack dan lakukan
operasi aritmatika
4. Simpan hasil stack.
Contoh :
1. –c + ba
PUSH a
PUSH b
ADD {Pop a dan b dari stack dan ditambahkan, c := a + b}
PUSH c
SUB
Algoritma untuk merubah ekspresi infiks ke postfix.
1. Baca dari kiri ke kanan.
2. Jika baca operand, tulis.
3. Jika baca “(“, push ke stack.
4. Jika baca “)”, pop seluruh isi stack dan tulis sampai dengan
ditemukan
“(“. Tanda kurung tidak ditulis.
5. Jika baca operator dan isi stack kosong, push ke stack.
15. 6. Jika baca operator(On)dan Top berisi (On-1)
Jika presenden On>On-1, Push On.
Jika presenden On<=On-1, Pop(dan tulis) On-1 dari stack, lalu
push On yang baru di baca.
7. Pada akhir ekspresi pop dabn tulis seluruh isi stack.
Presenden operator
1. / = *
2. + = -
3. (/,*) > (+,-)
4. /, *, +, -, >, (
Dengan notasi postfix pop dan tulis seluruh isi stack.
1. Baca ekspresi dari kiri ke kanan.
2. Jika membaca operand, push operand ke stack
3. Jika membaca operator, pop sejumlah operand dari stack dan lakukan
operasi aritmatika (perhatikan urutan).
4. Simpan hasil stack
Transormasi dari infiks ke frefiks?
PROCESSOR
Komponen prosessor :
1. Register
General Purpose
Special Purpose, a.l. : PC (atau IC : Program/Instruction
Counter), SP (Stack Pointer Register), IR(Intruction Register).
2. Control Unit/Squencer
3. ALU (Aritmetic and logic Unit).
Pada saat ini tidak ada mesin yang mengunakan prosessor 4-alamat.
Jika disebutka “prosessor 3-alamat”, kemungkinan instruksinya memiliki
0,1,2,atau 3 alamat. Jika ada kolom operand yang tidak diisi.
Pada umumnya mesin memiliki stack dan sejumlah register.
Prosesor intel 8080 memiliki stack yang dipakai hanya untuk penyimpanan
‘return address’. Mesin ini tidak dikelopokkan dalam mesin 0-alamat.
Fortran, pascal, C, Bahasa Mesin
Program sumber
Kompilator
Interpreter
Assembler Program Objek
Assembler
16. Contoh : Intruksi dari program sumber x := (a +b)/(c – d)
Program objek (ditulis dalam format ‘pseudo assembly’)
Mesin 0-Alamat Mesin 1- alamat Mesin 2-alamat
PUSH a LDA Ro,a
PUSH b ADD Ro,b
ADD STA t1,Ro
PUSH c LDA Ro,c
PUSH d SUB Ro,d
SUB STA t2
DIV LDA Ro,t1
POP x DIV R0,t2
STA x, Ro
Intruction Register (Register Intruksi) dan Dekoder Intruksi
Register yang menyimpan intruksi yang sedang dieksekusi.
2-alamat
Opcode Operand Operand
Load
ADO
Program Counter (PC)/Intruction Counter
Register yang menyimpan alamat dari intruksi yang akan dieksekusi.
Pada eksekusi program sekuensial, selesai membaca intruksi isi PC
diinkrementasi. Pada eksekusi percabangan, PC diisi dengan alamat tujuan
pencabangan.
Decoder
Stack Pointer Register
Stack biasa diimplementasikan dengan satu set memori dengan alamat yang
berturutan. Alamat ‘Top of Stack’ disimpan dalam satu register khusus,
biasanya disebut “Stack Pointer Register (SP)”.
SP
ACC (Accumulator) AX AH AL
BX Data 1 cell size MBR
CS
DS
ES Address 1 address space MAR
SS
Operasi pada Komputer
Siklus operasi : Fetch
Execute
Fetch : baca intruksi di memori (alamat ada di PC) dan load intruksi ke IR
Operasi Mikro :
MAR PC
17. Read (MBR RAM – MAR)
IR MBR
PC PC+1
Execute : decode instruksi di IR dan aktifkan operasi (mikro yang tepat)
Contoh :
LOAD ADD JNE
Setiap operasi mikro berarti mengaktifkan sinyal untuk satu atau lebih
komponen. Cara pengaktifannya sinyal control : hardware dan
microprogrammed.
Hardware : sinyal-sinyal control dibangkitkan dari perangkat
keras(rangkaian logika). Prosesor yang menggunakan pendekatan ini
disebut hardwared processor.
Microprogrammed atau firm – wired : intruksi bahasa mesin
ditranslasikan dalam instruksi mikro(microcode/micro instruction).
Program bahasa tinggkat tinggi Program objek Program dalam
microcode.
Setiap microcode mengaktifkan komponen rangkaian tertentu. Proosesor
yang menggunakan pendekatan ini disebut microprogrammed processor.
Komputer modern umumnya mengunakan konsep ini.
Pemrograman micro
Proses menulis program didalam bahasa micro.
Komputer deprogram pada tingkat di bawah bahasa mesin.
Setiap instruksi mikro akan mengaktifkan satu atau lebih rangkaian :
register, bus, atau ALU, dst.
Contoh : MOV dest, srce
Dahulu apakah computer deprogram mikro atau hardwared tidak tampak
oleh pengguna. Beberapa computer masa kini memberikan kesempatan
kepada pengguna untuk menulis program mikronya dan disimpan dalam
WCS (Writeable Control Store).
Tujuannya :
Simulasi set intruksi dari computer lain (emulasi)
Membuat operasi baru
Optimasi eksekusi operasi tertentu.
18. 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.
19. Daftar pustaka
http://harnowicaksono.blogspot.com/2013/11/karakteristik- instruksi-mesin.html
http://ubay16.wordpress.com/2013/10/30/metode-pengalamatan/
http://muhajirinumar.wordpress.com/2013/10/28/tipe-tipe-operand-dan-tipe-tipe-sistem-operasi/
http://zulfajri482.wordpress.com/2013/10/31/tipe-tipe-operasi/
http://sulaiman001.blogspot.com/2011/12/makalah-arsitektur-set- instruksi.html