Dokumen tersebut membahas tentang set instruksi (instruction set) yang merupakan kumpulan lengkap instruksi yang dapat dimengerti oleh CPU. Terdapat penjelasan mengenai jenis-jenis instruksi, operand, operasi, teknik pengalamatan, serta format set instruksi.
3. OUTLINE
1. PENGERTIAN SET INSTRUKSI
2. KARAKTERISTIK DAN FUNGSI SET INSTRUKSI
3. JENIS-JENIS INSTRUKSI
4. JENIS-JENIS OPERAND
5. TIPE-TIPE OPERASI
6. TEKNIK PENGALAMATAN
7. FORMAT SET INSTRUKSI
4. PENGERTIAN 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.
5. KARAKTERISTIK DAN FUNGSI SET
INSTRUKSI
Instruksi mesin yang dieksekusi membentuk suatu operasi dan berbagai
macam fungsi CPU. Kumpulan fungsi yang dapat dieksekusi CPU disebut
set instruksi CPU.
Mempelajari karakteristik instruksi mesin, meliputi :
- Elemen-elemen dari set instruksi
- Jumlah alamat
- Desain set instruksi
6. ELEMEN-ELEMEN DARI SET INSTRUKSI
Operation Code (Opcode) : Menentukan operasi yang akan dilaksanakan
Source Operand Reference : Merupakan input bagi operasi yang
dilaksanakan
Result Operand Reference : Merupakan hasil dari operasi yang
dilaksanakan
Next Instruction Reference : Memberitahu CPU untuk mengambil (fetch)
instruksi berikutnya setelah instruksi yang dijalankan selesai
7. DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek,
diantaranya adalah:
Kelengkapan set instruksi
Ortogonalitas (sifat independensi instruksi)
Kompatibilitas :
Source code compatibility
Object code Compatibility
8. DESAIN SET INSTRUKSI
Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:
Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan
berapa sulit operasinya
Data Types: tipe/jenis data
Instruction Format: panjangnya, banyaknya alamat, dan sebagainya.
Register: Banyaknya register yang dapat digunakan
Addressing: Mode pengalamatan untuk operand
9. JENIS-JENIS INSTRUKSI
Contoh Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN :
X=X+Y
X dan Y berkorespondensi dengan lokasi 513 dan 514.
Pernyataan dalam bahasa tingkat tinggi tersebut, secara sederhana menginstruksikan
computer untuk melakukan langkah berikut :
Muatkan sebuah register dengan isi lokasi memori 513
Tambahkan isi lokasi memori ke register
Simpan isi register di lokasi memori 513
10. JENIS-JENIS INSTRUKSI
Data Processing : Arithmetic and Logic Instructions, adalah jenis
pemrosesan yang dapat mengubah data menjadi informasi
Data Storage : Memory Instructions, adalah memori komputer untuk
mempertahankan data digital yang akan digunakan
Data Movement : I/O Instructions, memindahkan (backup) data – data
dari database yang berupa data, indeks, grand, schema, dan lain – lain ke
tempat baru.
Control : Test and Branch Instructions, adalah salah satu bagian dari
CPU yang bertugas untuk memberikan arahan/kontrol terhadap operasi
yang dilakukan di ALU (Arithmetic Logical Unit) dalam CPU tersebut.
11. JENIS-JENIS OPERAND
Operand adalah sebuah objek yang ada pada operasi matematika
yang dapat digunakan untuk melakukan operasi. Operand atau operator
dalam bahasa C berbentuk symbol bukan berbentuk keyword atau kata
yang biasa di bahasa pemrograman lain. Simbol yang digunakan bukan
karakter yang ada dalam abjad tetapi ada pada keyboard kita seperti =,,*
dan sebagainya.
12. JENIS-JENIS OPERAND
- Addresses
- Numbers
- Integer of fixed point
- Floating Point
- Decimal (BCD)
- Characters
- ASCII
- EBCDIC (Extended Binary Coded Decimal Interchange Code)
- Logical Data : Bila data berbentuk binary (0 dan 1)
13. TIPE-TIPE OPERASI
Dalam perancangan arsitektur computer, jumlah kode operasi akan sangat
berbeda untuk masing-masing computer, tetapi terdapat kemiripan dalam jenis
operasinya.
Berikut tipe operasi computer :
1. Transfer Data
2. Arithmetic
3. Logical
4. Konversi
5. Input/Output
6. Sistem Kontrol
7. Transfer Control
14. 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 :
Memindahkan data dari satu lokasi ke lokasi lain.
Apabila memori dilibatkan :
Menetapkan alamat memori.
Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
Mengawali pembacaan / penulisan memori
15. OPERASI SET INSTRUKSI UNTUK TRANSFER
DATA
Tipe Nama Aksi
MOVE Mentransfer data dari lokasi sumber ke lokasi tujuan
LOAD Mentransfer data dari lokasi memori ke register CPU
STORE Mentransfer data dari register CPU ke lokasi memori
Transfer Data PUSH Mentransfer data dari sumber ke stack (puncak)
POP Mentransfer data dari stack ke tujuan
XCHG Tukar, menukar isi sumber dan tujuan
CLEAR Reset tujuan dengan semua bit ‘1’
SET Set tujuan dengan semua bit ‘1’
16. ARITHMETIC
Tindakan CPU untuk melakukan operasi arithmetic :
Transfer data sebelum atau sesudah.
Melakukan fungsi dalam ALU.
Menset kode-kode kondisi dan flag.
17. OPERASI SET INSTRUKSI UNTUK
ARITHMETIC
Tipe Nama Aksi
ADD Jumlah, hitung jumlah dari dua operand
ADC Jumlah dengan carry, hitung jumlah dari dua operand
dan bit ‘carry’
SUB Kurang, hitung selisih dua bilangan
SUBB Kurang dengan borrow, hitung selisih dengan ‘borrow’
Aritmatika MUL Perkalian, hitung hasil kali dari dua operand
DIV Pembagian, hitung hasil bagi dan sisa pembagian dari
dua bilangan
NEG Negate, ganti tanda operand
INC Increment, tambahkan 1 pada operand
DEC Decrement, kurangkan 1 pada operand
SHIFT A Shift, Aritmatic, geser operand (ke kiri atau ke kanan)
dengan tanda
18. LOGICAL
Tindakan CPU untuk melakukan operasi Logical :
Transfer data sebelum atau sesudah.
Melakukan fungsi dalam ALU.
Menset kode-kode kondisi dan flag.
19. OPERASI SET INSTRUKSI UNTUK
LOGICAL
Tipe Nama Aksi
NOT Komplemenkan (komplemen 1) operand
OR Lakukan operasi logika OR pada operand
AND Lakukan operasi logika AND pada operand
Logika XOR Lakukan operasi ‘Exclusive-OR’ pada operand
SHIFT Geser operand (ke kiri atu kanan) isi bit kosong
dengan ‘0’
ROT Rotasi, geser operand (ke kiri atau kanan) dengan
berputar
TEST Uji kondisi yang ditetapkan dan pengaruh flag
yang relevan
20. KONVERSI
Tindakan CPU sama dengan arithmetic dan logical.
Instruksi yang mengubah format instruksi yang beroperasi terhadap
format data. Misalnya pengubahan bilangan desimal menjadi bilangan
biner.
21. OPERASI SET INSTRUKSI UNTUK
KONVERSI
Tipe Nama Aksi
XLAT Translate, ubah kode yang diberikan ke bentuk
yang ain dengan table lookup
HLT Halt, hentikan siklus instruksi (pemrosesan)
Konversi STI (EI) Set Interrupt (enable interrupt), man-set interrupt
enable flag ke ‘1’
CLI (DI) Clear interrupt (disable interrupt), me-reset
interrupt enable flag ke ‘0’
WAIT Penghentian siklus instruksi hingga suatu kondisi
terpenuhi (seperti sinyal input menjadi aktif)
NOOP No operation, nothing
CMC Komplemenkan carry flag
CLC Jadikan ‘0’ carry flag
STC Jadikan ‘1’ carry flag
22. INPUT/OUTPUT
Tindakan CPU untuk melakukan INPUT /OUTPUT :
Apabila memory mapped I/O maka menentukan alamat memory mapped.
Mengawali perintah ke modul I/O
23. OPERASI SET INSTRUKSI UNTUK
INPUT/OUTPUT
Tipe Nama Aksi
IN Input, baca data dari port/device yang ditetapkan ke
register yang ditetapkan atau yang terlibat
OUT Output, tulis data dari register yang ditetapkan atau
yang terlibat
Instruksi Input-Output TEST I/O Baca status dari subsystem I/O dan set kondisi flag
START I/O Sinyal prossesor I/O (atau data channel) untuk
memulai program I/O (perintah untuk program I/O)
HALT I/O Sinyal prosessor I/O untuk membatalkan program
I/O dalam progress
24. SISTEM KONTROL
Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus
tertentu atau sedang mengeksekusi suatu program yang berada dalam
area khusus, biasanya digunakan dalam sistem operasi.
Contoh : membaca atau mengubah register kontrol.
26. OPERASI SET INSTRUKSI UNTUK TRANSFER
CONTROL
Tipe Nama Aksi
JUMP Branch, masukkan alamat yang ditetapkan ke PC, cabang
tak bersyarat (unconditional transfer)
JUMPIF Bercabang dengan kondisi, masukkan alamat yang
ditetapkan ke PC hanya jika kondisi yang ditetapkan
terpenuhi, conditional transfer
JUMPSUB CALL, simpan ‘program control status’ yang sekarang dan
masukkan alamat yang ditetapkan ke PC
Transfer Kontrol RET RETURN, unsave (restore) ‘program control status’ (dai
stack) ke PC dan register/flag yang relevan lainnya
INT Interupsi, melakukan interupsi software, simpan ‘status
control program’ (ke stack) dan masukkan alamat sesuai
dengan kode yang ditetapkan (vector) ke PC
IRET Interrupst return, ambil kembali ‘status program kontrol’ dari
stack ke PC serta register-register dan flag yang relevan
isinya
LOOP Iterasi, turunkan (decrement) isi register dengan 1 dan uji
non-zero, jika tercapai, masukkan alamat yang ditetapkan
PC
28. APA ITU TEKNIK PENGALAMATAN?
TEKNIK PENGALAMATAN
Adalah metode penentuan alamat operand pada instruksi.
Operand Instruksi diletakan pada memori utama dan register CPU
Teknik pengalamatan diterpkan pada set instruksi, yang umumnya
terdiri dari opcode dan alamat
29. TEKNIK PENGALAMATAN
Jenis-jenis Teknik Pengalamatan :
Direct Addressing
Indirect Addressing
Immediate Addressing
Register Addressing
Register Indirect Addressing
Displacement Addressing
Stack Addressing
30. 1. IMMEDIATE ADDRESSING
Pada metode ini tidak membutuhkan alamat memori atau register karena
tempat untuk alamat operand diisi langsung oleh bilangan operandnya
- Contoh LOAD #3
Pada penulisan ditambah # menandakan dia
langsung, tidak membutuhkan memori
31. 2. DIRECT ADDRESSING
Alamat operand ditunjuk secara langsung pada instruksi.
Pemanggilan alamat operand berupa memori
32. - Contoh LOAD 3
Akan menghasilkan Acc 43
karena alamat memori 3 berisi
bilangan 43
Contoh :
Anggap kita memiliki contoh register
dari memori sebagai berikut (bagian
kiri alamat, bagian kanan datanya)
33. 3. INDIRECT ADDRESSING
Alamat operand ditunjukan secara tidak langsung oleh data
yang terkandung pada alamat yang ditunjuk. Pemanggilan
alamat operand berupa memori.
34. Contoh :
Anggap kita memiliki contoh
register dari memori sebagai
berikut (bagian kiri alamat, bagian
kanan datanya)
Contoh LOAD 50 atau bisa
dituliskan LOAD (50)
Akan akan menghasilkan Acc 43
karena alamat memori 50 berisi
alamat memori 3 sedangkan
alamat memori 3 berisi bilangan
43
35. 4. REGISTER ADDRESSING
Alamat operand diambil pada alamat Register yang ditulis
pada Instruksi. Biasanya menggunakan huruf, tanpa tanda
kurung.
36. Contoh :
Anggap kita memiliki contoh
register dari memori sebagai
berikut
Contoh LOAD D Akan akan
menghasilkan 51, nah 51 adalah
operandnya
37. 5. REGISTER INDERICT ADDRESSING
Alamat operand diambil pada alamat memori dari isi register
yang ditulis pada Instruksi. Menggunakan huruf dan tanda
kurung.
38. Contoh :
Anggap kita memiliki contoh
register dari memori sebagai
berikut
Contoh LOAD (D) Akan akan
menghasilkan 51, nah 51 adalah
alamat memorinya dimana letak
operand berada.
40. Contoh :
Anggap kita memiliki contoh
register dari memori sebagai
berikut
Contoh LOAD (D) + 49 akan
akan menghasilkan 5, nah ada
penambahan 26 inilah yang
disebut offside atau displacement.
41. 7. STACK ADDRESSING
Merupakan Teknik pengalamatan 0 alamat yang menggunakan
konsep stack, yaitu tumpukan yang menggunakan konsep
LIFO.
43. JUMLAH ALAMAT
Cara mengetahui processor dengan melihat jumlah alamat yang terkandung di tiap instruksi
Terdiri dari :
1. Satu Alamat (Menggunakan accumulator untuk menyimpan operand dan hasilnya)
Contoh : LOAD A ACC = nilai yang tersimpan di register A
2. Dua Alamat (Satu operand merangkap hasil, satunya lagi operand)
Contoh : MOVE Y,A Y = nilai yang tersimpan di register A
3. Tiga Alamat (Dua opernd, satu hasil)
Contoh : ADD T,A,B T = nilai yang tersimpan pada regiA + nilai yang tersimpan di reg B
4. Nol Alamat (Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack.)
44. FORMAT SET INSTRUKSI
1 ALAMAT
X = (A+BxC)/(D-ExF)
REGISTER (A,B,C,D,E,F,X)
Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di accumulator
LOAD E ACC = E
MPY F ACC = ACC*F
STOR X X = ACC
LOAD D ACC = D
SUB X ACC = ACC-X
STOR X X = ACC
LOAD B ACC = B
MPY C ACC = ACC*C
ADD A ACC = ACC+A
DIV X ACC = ACC/X
STOR X X = ACC
45. FORMAT SET INSTRUKSI
2 ALAMAT
X=(A+BxC)/(D-ExF)
REGISTER (A,B,C,D,E,F,X,Y,Z)
Mempunyai bentuk umum : [OPCODE],[AO]. Terdiri dari satu alamat hasil merangkap operand,
satu alamat operand
MOVE X,B X = B
MPY X,C X = X*C
ADD X,A X = X+A
MOVE Z,E Z = E
MPY Z,F Z = Z*F
MOVE Y,D Y = D
SUB Y,Z Y = Y-Z
DIV X,Y X = X/Y
46. FORMAT SET INSTRUKSI
3 ALAMAT
X=(A+BxC)/(D-ExF)
REGISTER (A,B,C,D,E,F,X,Y,Z)
Mempunyai bentuk umum seperti : [OPCODE][AH].[AO1],[AO2]. Terdiri dari satu
alamat hasil, dan dua alamat operand
MPY X,B,C X = B*C
ADD X,X,A X = X+A
MPY Y,E,F Y = E*F
SUB Y,D,Y Y = D-Y
DIV X,X,Y X = X-Y
47. FORMAT SET INSTRUKSI
0 ALAMAT
Mempunyai bentuk umum : [OPCODE][O].
Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack. Operasi
yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan
dibawahnya.
Misal : SUB
Bentuk algoritmik : S[top]:=S[top-1]-S[top]
Ada instruksi khusus Stack : PUSH dan POP