Set Instruksi (bahasa
Inggris: Instruction Set, atau Instruction Set Architecture (ISA))
didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat
oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung,
jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur
memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode)
yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain
prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa
mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer
digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC,
Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.
KARAKTERISTIK DAN FUNGSI SET INSTRUKSI
„ Operasi dari CPU ditentukan oleh
instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering
disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer
(computer instructions). Kumpulan dari instruksi-instruksi yang berbeda
yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set).
JENIS INSTRUKSI
1. Data procecessing: Arithmetic dan Logic Instructions
2. Data storage: Memory instructions
3. Data Movement: I/O instructions
Teknik Pengalamatan
Mode
pengalamatn Pentium
Pentium dilengkapi bermacam-macam mode pengalamatan untuk memudahkan
bahasa-bahasa tingkat tinggi mengeksekusinya secara efisien.
Macam-macam
mode pengalamatanpentium :
¨ Mode
Immediate
· Operand
berada di dalam intruksi.
· Operand
dapat berupa data byte, word atau doubleword.
¨ Mode
Operand Register
Yaitu
operand adalah isi register.
· Register
8 bit (AH, BH, CH, DH, AL, BL, CL, DL)
· Register
16 bit (AX, BX, CX, DX, SI, DI, SP, BP)
· Register
32bit (EAX, EBX, ECX, ESI, EDI, ESP, EBP)
· Register
64 bit yang dibentuk dari register 32 bit secara berpasangan.
· Register
8, 16, 32 bit merupakan register untuk penggunaan umum (general purpose
register).
· Register
14 bit biasanyan untuk operasi floating point.
· Register
segmen (CS, DS, ES, SS, FS, GS)
¨ Mode
Displacement
· Alamat
efektif berisi bagian-bagian intruksin dengan displacement 8, 16, atu 32 bit.
· Dengan
segmentasi, seluruh alamat dalam intruksi mengacu ke sebuah offset di dalam
segmen.
· Dalam
Pentium, mode ini digunakan untuk mereferensi variable-variabel global.
¨ Mode
Base
· pengalamatan
indirect yang menspesifikasi saru register 8, 16 atau 32 bit berbasis alamat
efektifnya.
Format
instruksi (biner):
Missal instruksi dengan 2
alamat operand : ADD A,B A dan B adalah suatu alamat register.
Beberapa simbolik instruksi:
ADD :
Add (jumlahkan)
SUB :
Subtract (Kurangkan)
MPY/MUL :
Multiply (Kalikan)
DIV :
Divide (Bagi)
LOAD :
Load data dari register/memory
STOR :
Simpan data ke register/memory
MOVE :
pindahkan data dari satu tempat ke tempat lain
SHR :
shift kanan data
SHL :
shift kiri data .dan lain-lain
Cakupan
jenis instruksi:
Data
processing :
Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR,
dsb); konversidata
Data storage
(memory) : Transfer data (STOR, LOAD, MOVE, dsb)
Data
movement :
Input dan Output ke modul I/O
Program flow
control : JUMP, HALT, dsb.
Bentuk
instruksi:
- Format
instruksi 3 alamat
Mempunyai bentuk umum seperti :
[OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil, dan dua alamat
operand, misal SUB Y,A,B Yang mempunyai arti dalam bentuk algoritmik : Y := A –
B dan arti dalam bentuk penjelasan : kurangkan isi reg a dengan isi reg B,
kemudian simpan hasilnya di reg Y. bentuk bentuk pada format ini tidak umum
digunakan di dalam computer, tetapi tidak dimungkinkan ada pengunaanya, dalam
peongoprasianya banyak register sekaligus dan program lebih pendek.
Contoh:
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
SUB Y, A,
B Y
:= A – B
MPY T, D,
E T
:= D × E
ADD T, T,
C T
:= T + C
DIV Y, Y,
T Y:=
Y / T
Memerlukan 4 operasi
- Format
instruksi 2 alamat
Mempunyai bentuk umum :
[OPCODE][AH],[AO]. Terdiri dari satu alamat hasil merangkap operand, satu
alamat operand, missal : SUB Y,B yang mempunyai arti dalam algoritmik : Y:= Y –
B dan arti dalam bentuk penjelasan : kurangkan isi reg Y dengan isi reg B,
kemudian simpan hasillnya di reg Y. bentuk bentuk format ini masih digunakan di
computer sekarang, untuk mengoprasikan lebih sedikit register, tapi panjang
program tidak bertambah terlalu banyak.
Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
MOVE Y,
A Y
:= A
SUB Y,
B Y
:= Y – B
MOVE T,
D T
:= D
MPY T,
E T
:= T × E
ADD T,
C T
:= T + C
DIV Y,
T Y:=
Y / T
Memerlukan 6 operasi
- Format
instruksi 1 alamat
Mempunyai bentuk umum :
[OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di accumulator,
missal : SUB B yang mempunyai arti dalam algoritmik : AC:= AC – B dan arti
dalam bentuk penjelasan : kurangkan isi Acc dengan isi reg B, kemudian simpan
hasillnya di reg Acc. bentuk bentuk format ini masih digunakan di computer
jaman dahulu, untuk mengoprasikan di perlukan satu register, tapi
panjang program semakin bertambah.
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD
D AC
:= D
MPY
E AC
:= AC × E
ADD
C AC
:= AC + C
STOR
Y Y
:= AC
LOAD
A AC
:= A
SUB B AC
:= AC – B
DIV
Y AC
:= AC / Y
STOR
Y Y
:= AC
Memerlukan 8 operasi
- Format instruksi 0 alamat
Mempunyai bentuk umum : [OPCODE].
Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack.
Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling
atas dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik :
S[top]:=S[top-1]-S[top] dan arti dalam bentuk penjelasan : kurangkan isi
stack no2 dari atas dengan isi stack paling atas, kemudian simpan hasilnya di
stack paling atas, untuk mengoprasikan ada beberapa instruksi khusus stack PUSH
dan POP.
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A S[top]
:= A
PUSH
B S[top]
:= B
SUB S[top]
:= A – B
PUSH
C S[top]
:= C
PUSH
D S[top]
:= D
PUSH
E S[top]
:= E
MPY S[top]
:= D × E
ADD S[top]
:= C + S[top]
DIV S[top]
:= (A – B) /S[top]
POP
Y Out
:= S[top]
Memerlukan 10 operasi
Set instruksi pada CISC:
Berikut ini merupakan
karakteristik set instruksi yang digunakan pada beberapa computer yang memiliki
arsitektur CISC
Perbandingan
set instruksi
Beberapa computer CISC (Complex
Instruction Set Computer) menggunakan cara implist dalam menentukan mode
addressing pada setiap set instruksinya. Penentuan mode addressing dengan cara
implicit memiliki arti bahwa pada set instruksi tidak di ada bagian yang
menyatakan tipe dari mode addressing yang digunakan, deklarasi dari mode
addressing itu berada menyatu dengan opcode. Lain hal nya dengan cara imsplisit,
cara eksplisit sengaja menyediakan tempat pada set instruksi untuk
mendeklarasikan tipe mode addressing. Pada cara eksplisit deklarasi opcode dan
mode addressing berada terpisah.
Data pada tempat deklarasi mode
addressing diperoleh dari logaritma basis dua jumlah mode addressing. Jika
deklarasi mode addressing dilakukan secara implicit akan menghemat tempat dalam
set instruksi paling tidak satu bit untuk IBM 3090 dan 6 bit untuk MC68040.
Perubahan satu bit pada set instruksi akan memberikan jangkauan alamat memori
lebih luas mengingat range memori dinyatakan oleh bilangan berpangkat dua.
Desain set Instruksi
Desain set
instruksi merupakan masalah yang sangatkomplek yang melibatkan banyak aspek,
diantaranya adalah:1. Kelengkapan set instruksi2. Ortogonalitas (sifat
independensi instruksi)3.
Kompatibilitas :
- source code compatibility
- Object code Compatibility
Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut :
a. Operation
Repertoire
Berapa banyak dan operasiapa saja yang disediakan, dan berapa sulitoperasinya
b. Data
Types
Tipe/jenis data yang dapat olah
c.
Instruction Format
Panjangnya, banyaknya alamat,dsb.
d. Register
Banyaknya register yang dapat digunakan
e.
Addressing
Mode pengalamatan untuk operand
Sumber : http://id.wikipedia.org/wiki/Set_instruksi
https://ekofitriyanto.wordpress.com/2013/10/30/177/
http://siezwoyouye.blogspot.com/2012/10/arsitektur-set-instruksi.html