Dua bagian utama set intruksi :
§ Instruction-set architecture, menentukan bagaimana programmer bahasa mesin bisa berinteraksi dengan computer.
§ Hardware-system architecture, mencakup desain logis dan organisasi arus data dari subsistem.
Karakteristik fungsi set intruksi
Definisi : Kumpulan dari intruksi-intruksi berbeda Yang dapat di eksekusi CPU disebut set intruksi.
1. Elemen-elemen dari instruksi mesin (set intruksi)
§ Operation Code (opcode)
§ Source Operand Reference
§ Result Operand Reference
§ Next instruction Reference
Lokasi set intruksi
Source dan result operands dapat berupa salah satu diantara tiga jenis berikut ini :
1. Main or virtual memory
2. CPU register
3. I/O device
2. Representasi intruksi
Desain intruksi
v 1. Kelengkapan set instruksi
v 2. Ortogonalitas (sifat independensi intruksi )
v 3. Kompatibilitas :
- Source code compatibility
- Object code Compatibility
Selain ketiga aspek tersebut juga melibatkan hal-hal berikut ini :
v Operation Repertoire
v Data Types
v Register
v Addressing
Format intruksi
Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).
Kode operasi (opcode) direpresentasikan dengan singkatan yang disebut mnemonic.
Contoh mnemonic :
· ADD (penambahan)
· SUB (pengurangan)
· LOAD (muatkan data ke memori)
Jenis-jenis operand
v Addresses
v Numbers
v Characters
v Logical Data
Jenis-jenis intruksi
v Data processing
v Data storage
v Data Movement
v Control
TRANSFER DATA
v Menetapkan lokasi operand sumber dan operand tujuan.
v Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
v Menetapkan panjang data yang dipindahkan.
v Menetapkan mode pengalamatan.
v 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
Operasi set instruksi untuk transfer data
v MOVE
v STORE
v LOAD
v EXCHANGE
v CLEAR / RESET
v SET
v PUSH
v POP
ARITHMETIC
· Tindakan CPU untuk melakukan operasi arithmetic :
1. Transfer data sebelum atau sesudah.
2. Melakukan fungsi dalam ALU.
3. Menset kode-kode kondisi dan flag.
· Operasi set instruksi untuk arithmetic :
1. ADD : penjumlahan 5. ABSOLUTE
2. SUBTRACT : pengurangan 6. NEGATIVE
3. MULTIPLY : perkalian 7. DECREMENT
4. DIVIDE : pembagian 8. INCREMENT
Nomor 5 sampai 8 merupakan instruksi operand tunggal.
LOGICAL
· Operasi set instruksi untuk operasi logical :
1. AND, OR, NOT, EXOR
2. COMPARE
3. TEST
4. SHIFT
5. ROTATE
INPUT / OUPUT
· Operasi set instruksi Input / Ouput :
a. INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
b. OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
c. START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
d. 4. TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
TRANSFER CONTROL
v JUMP (cabang)
v JUMP BERSYARAT
v JUMP SUBRUTIN
v RETURN
v EXECUTE
v SKIP
v SKIP BERSYARA
v HALT
v WAIT (HOLD
v NO OPERATION
CONTROL SYSTEM
· 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.
NUMBER OF ADDRESSES
· 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)
Macam-macam instruksi menurut jumlah operasi yang dispesifikasikan
· 1. O – Address Instruction
· 2. 1 – Addreess Instruction.
· 3. N – Address Instruction
· 4. M + N – Address Instruction
Macam-macam instruksi menurut sifat akses terhadap memori atau register
· Memori To Register Instruction
· Memori To Memori Instruction
· Register To Register Instruction
ADDRESSING MODES
· Immediate
· Direct
· Indirect
· Register
· Register Indirect
· Displacement
· Stack