Anda di halaman 1dari 17

BAB I

PEMBAHASAN

A. Pengertian Set Instruksi

Set Instruksi (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.

ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik


yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan
teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup
microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-
komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang
sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon
mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi
jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini
dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM
System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang
diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai
mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform
dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar
dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus
memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini
membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor
CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-
bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan
dengannya.

12
B. Representasi Data

Untuk memberi tanda bilangan biner 0 (nol) untuk bilangan positif atau
plus dan 1 untuk bilangan negatif atau minus. Pada bilangan biner n-bit, jika
susunannya dilengkapi dengan bit tanda maka diperlukan register dengan panjang
n+1 bit. Dalam hal ini, n bit digunakan untuk menyimpan bilangan biner itu
sendiri dan satu bit untuk tandanya. Pada representasi bilangan biner yang
dilengkapi dengan tanda bilangan, bit tanda ditempatkan pada posisi paling kiri.

Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat
tersebut dalam matematika. Representasi data ini merupakan cara bagaimana
nilainya disimpan di dalam memori komputer. Tipe data integral terbagi menjadi
dua buah kategori, baik itu bertanda (signed) ataupun tidak bertanda (unsigned).
Bilangan bulat bertanda mampu merepresentasikan nilai bilangan bulat negatif,
sementara bilangan bulat tak bertanda hanya mampu merepresentasikan bilangan
bulat positif.

Representasi integer positif di dalam komputer sebenarnya adalah untaian


bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit tersebut pun
bervariasi, bisa berupa Little Endian ataupun Big Endian. Selain ukuran, lebar
atau ketelitian (presisi) bilangan bulat juga bervariasi, tergantung jumlah bit yang
direpresentasikanya. Bilangan bulat yang memiliki n bit dapat mengodekan 2n.
Jika tipe bilangan bulat tersebut adalah bilangan bulat tak bertanda, maka
jangkauannya adalah dari 0 hingga 2n-1.

C. Sistem Bilangan

Bahasa alamiah mengenal bilangan basis 10 (disebut desimal),sedangkan


bahasa mesin mengenal sistem bilangan yakni tiga basis, yaitu.

 Basis bilangan 2 yakni binary-digit, digunakan pada komunikasi data.


 Basis bilangan 8 yakni octal-digit, digunakan pada pengalamatan memori

 Basis bilangan 16 yakni hexadecimal, digunakan pada pengalamatan di


memory dan pengkodean warna.

12
1. Sistem Bilangan Desimal (Basis 10)

Desimal (Basis 10) adalah Sistem Bilangan yang paling umum digunakan
dalam kehidupan sehari-hari. Sistem bilangan desimal menggunakan basis 10 dan
menggunakan 10 macam simbol bilangan yaitu : 0,1,2,3,4,5,6,7,8 dan 9. Sistem
Bilangan desimal dapat berupa integer decimal (decimal integer) dan pecahan
decimal.

Untuk melihat nilai bilangan desimal dapat digunakan perhitungan seperti


berikut, misalkan contoh bilangan desimal adalah 8598. Ini dapat diartikan :

Dalam gambar diatas disebutkan Absolut Value dan Position Value.


Setiap simbol dalam sistem bilangan desimal memiliki Absolut Value dan Position
Value. Absolut value adalah Nilai Mutlak dari masing-masing digit bilangan.
Sedangkan Position Value adalah Nilai Penimbang atau bobot dari masing-
masing digit bilangan tergantung dari letak posisinya yaitu bernilai basis di
pangkatkan dengan urutan posisinya. Untuk lebih jelasnya perhatikan table
dibawah ini.

Dengan begitu maka bilangan desimal 8598 bisa diartikan sebagai berikut :

12
Sistem bilangan desimal juga bisa berupa pecahan desimal (decimal
fraction), misalnya : 183,75 yang dapat diartikan :

2. Sistem Bilangan biner (basis 2)

Sistem bilangan biner atau sistem bilangan basis dua adalah sebuah
system penulisan angka dengan menggunakan dua simbol yaitu 0 dan 1. Sistem
bilangan biner modern ditemukan oleh Gottfried Wilhelm Leibniz pada abad ke-
17. Sistem bilangan ini merupakan dasar dari semua sistem bilangan berbasis
digital. Dari sistem biner, kita dapat mengkonversinya ke sistem bilangan oktal
atau hexadesimal. Sistem ini juga dapat kita sebut dengan istilah bit, atau Binary
Digit. Pengelompokan biner dalam komputer selalu berjumlah 8, dengan istilah 1
Byte. Dalam istilah komputer, 1 Byte = 8 bit. Kode-kode rancang bangun
komputer, seperti ASCII, American Standard Code for Information Interchange
menggunakan sistem peng-kode-an 1 Byte. Contoh konversi bilangan Biner ke
desimal.

Position Value dalam sistem Bilangan Biner merupakan perpangkatan dari


nilai 2 (basis), seperti pada tabel berikut ini :

Berarti, Bilangan Biner 1001 perhitungannya adalah sebagai berikut :

12
3. Sistem Bilangan Oktal (basis 8)

Oktal atau sistem bilangan basis 8 adalah sebuah sistem bilangan berbasis
delapan. Simbol yang digunakan pada sistem ini adalah 0,1,2,3,4,5,6,7. Konversi
Sistem Bilangan Oktal berasal dari sistem bilangan biner yang dikelompokkan
tiap tiga bit biner dari ujung paling kanan (LSB atau Least Significant Bit).contoh
konversi bilangan Oktal ke decimal.

Position Value dalam Sistem Bilangan Oktal merupakan perpangkatan


dari nilai 8 (basis), seperti pada tabel berikut ini:

Berarti, Bilangan Oktal 1022 perhitungannya adalah sebagai berikut :

4. Sistem Bilangan Hexadesimal (Basis 16)

Hexadesimal (Basis 16), Hexa berarti 6 dan Desimal berarti 10 adalah


Sistem Bilangan yang terdiri dari 16 simbol yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10),
B(11), C(12), D(13), E(14), F(15). Pada Sistem Bilangan Hexadesimal

12
memadukan 2 unsur yaitu angka dan huruf. Huruf A mewakili angka 10, B
mewakili angka 11 dan seterusnya sampai Huruf F mewakili angka 15.

Contoh Hexadesimal F3D4, Ini dapat di artikan (Di konversikan ke sistem


bilangan desimal) menjadi sebagai berikut

Position Value dalam Sistem Bilangan Hexadesimal merupakan perpangkatan dari


nilai 16 (basis), seperti pada tabel berikut ini :

Berarti, Bilangan Hexadesimal F3DA perhitungannya adalah sebagai berikut:

D. Karakteristik dan Fungsi Set Instruksi

Operasi dari CPU ditentukan oleh instruksi - instruksi yang di laksanakan


atau dijalankannya Instruksi ini sering di sebut sebagai instruksi mesin (mechine
instructions) atau instruksi computer (computer instructions).

Kumpulan dari instruksi-instruksi yang berbeda yang dapat di jalankan


oleh CPU di sebut set Instruksi (Instruction Set).

E. Elemen - elemen dari Instruksi Mesin (set instruksi)

 Operation Code (opcode)

Sebuah opcode (kode operasi) adalah bagian dari instruksi bahasa


mesin yang menentukan operasi yang akan dilakukan. spesifikasi mereka

12
dan format yang diletakkan dalam set instruksi arsitektur prosesor yang
bersangkutan (yang mungkin merupakan CPU umum atau unit pengolahan
lebih khusus). Terlepas dari opcode sendiri, instruksi biasanya juga
memiliki satu atau lebih penspesifikasi untuk operan (data yaitu) di mana
operasi harus bertindak, meskipun beberapa operasi mungkin memiliki
operan implisit, atau tidak sama sekali. Ada instruksi set dengan bidang
hampir sama untuk penspesifikasi opcode dan operan,serta yang lain (yang
x86 architecture misalnya) dengan struktur, panjang lebih rumit bervariasi.

 Source Operand Reference = operasi dapat berasal dari lebih satu sumber.
Operand adalah input instruksi.
 Result Operand Reference = Merupakan hasil atau keluaran operasi.

 Next instruction Reference = elemen ini menginformasikan CPU posisi


instruksi berikutnya yang harus diambil dan dieksekusi.

Operand dari Operasi :

Melihat dari operasi,operand suatu operasi dapat berada di salah satu dari
ketiga daerah berikut :

 memori utama atau memori virtual.


 register CPU.

 perangkat I/O.

F. 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 ber-format instruksi.
Format Instruksi :

[opcode] [alamat]

 Kode operasi (opcode) direpresentasikan dengan singkatan - singkatan


yang disebut mnemonic.
 Mnemonic mengindikasikan suatu operasi bagi CPU.
Contoh mnemonic:

 ADD = penambahan.

12
 SUB = subtract (pengurangan).

 LOAD = muatkan data ke memori.

Contoh representasi operand secara simbolik:

ADD X, Y

artinya: tambahkan nilai yang berada pada lokasi Y dengan isi register X
dan simpan hasilnya di register X.

- Programmer dapat menuliskan program bahasa mesin dalam bentuk


simbolik.
- Setiap opcode simbolik memiliki representasi biner yang tetap dan
programmer dapat menetapkan lokasi masing-masing operand.

Korelasi :

a. Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa


mesin.
b. Dalam bahasa tangkat tinggi, operasi dinyatakan dalam bentuk aljabar
singkat menggunakan variable.

c. Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan


antar register.

d. Dapat ditarik kesimpulan bahwa instruksi-instruksi mesin harus mampu


mengolah data sebagai implementasi keinginan-keinginan kita.

e. Terdapat kumpulan unik set instruksi, yang dapat digolongkan dalam


jenis-jenisnya, yaitu:

 Pengolahan data (data processing)


Meliputi operasi-operasi aritmatika dan logika. Operasi aritmatika
memiliki kemampuan komputasi untuk pengolahan data numerik.
Sedangkan instruksi logika beroperasi terhadap bit-bit word sebagai bit,
bukannya sebagai bilangan, sehingga instruksi ini memiliki kemampuan
untuk pengolahan data lain.

 Perpindahan data (data movement)


Berisi instruksi perpindahan data antar register maupun modul I/O. untuk
dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas
memindahkan data operand yang diperlukan.

12
 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 diadakan penyimpanan walaupun sementara.

 Kontrol aliran program (program flow control)


Berisi instruksi pengontrolan operasi dan percabangan. Instruksi ini
berfungsi untuk pengontrolan status dan mengoperasikan percabangan ke
set instruksi lain.

G. Desain Set Instruksi

Desain set instruksi merupakan masalah yang sangat komplek yang


melibatkan banyak aspek,di antaranya adalah:

a. Kelengkapan set instruksi


b. Ortogonalitas (sifat independensi instruksi)

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.

3. Instruction Format: panjangnya, banyaknya alamat, dsb.

4. Register: Banyaknya register yang dapat digunakan.

5. Addressing: Mode pengalamatan untuk operand.

H. Format Instruksi

Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen
dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai format
Instruksi (Instruction Format).

 OPCODE

12
 OPERAND REFERENCE

 OPERAND REFERENCE

a. Jenis - jenis Operand

- Addresses (akan dibahas pada addressing mode)

- Numbers : - Integer or fixed point

- Floating point

- Decimal (BCD)

- Characters : - ASCII
- EBCDIC

- Logical Data : Bila data berbentuk binary yaitu 0 dan 1

b. Jenis Instruksi

- Data processing: Arithmetic dan Logic Instruction.

- Data storage: Memory instructions

- Data Movement: I/O instructions

- Control: Test and branch instructions

c. 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 :

12
 Menetapkan alamat memori.

 Menjalankan transformasi alamat memori virtual ke alamat


memori aktual.

 Mengawali pembacaan / penulisan memori .

d. 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 bagian paling atas sumber .

e. Arithmetic

Tindakan CPU untuk melakukan operasi arithmetic :

 Transfer data sebelum atau sesudah.


 Melakukan fungsi dalam ALU.

 Menset kode-kode kondisi dan flag.

Operasi set instruksi untuk arithmetic :

 ADD : penjumlahan.
 SUBTRACT : pengurangan.

 MULTIPLY : perkalian.

 DIVIDE : pembagian.

 ABSOLUTE.

12
 NEGATIVE.

 DECREMENT.

 INCREMENT.
Nomor 5 sampai 8 merupakan instruksi operand tunggal.

f. Logical

Tindakan CPU sama dengan arithmetic.

Operasi set instruksi untuk operasi logical :

1. AND, OR, NOT, EXOR.


2. COMPARE : melakukan perbandingan logika.

3. TEST : menguji kondisi tertentu.

4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan


konstanta pada ujung bit.

5. ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung


yang terjalin.

g. Conversi

Tindakan CPU sama dengan arithmetic dan logical. Instruksi yang


mengubah format instruksi yang beroperasi terhadap format data.
Misalnya pengubahan bilangan desimal menjadi bilangan biner.

Operasi set instruksi untuk conversi :


1. TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori
berdasrkan tabel korespodensi.
2. CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk
lainnya.

I. Jumlah Alamat

Jumlah register atau alamat yang digunakan dalam operasi CPU


tergantung format masing-masing CPU. Ada format operasi yang menggunakan 3,
2, 1 dan 0 register. Tetapi pada umumnya yang digunakan adalah 2 register dalam

12
satu operasi. Desain CPU saat ini telah menggunakan 3 alamat dalam satu operasi,
terutama dalam MIPS. (million instruction per second).

Alamat instruksi yang lebih sedikit akan membuat instruksi lebih


sederhana dan pendek, tetapi lebih sulit diimplementasikan fungsi-fungsi yang
kita inginkan. Karena instruksi CPU sederhana maka rancangan CPU juga lebih
sederhana. Jumlah bit dan referensi per instruksi lebih sedikit sehingga fetch dan
eksekusi lebih cepat. Tetapi jumlah instruksi per-program biasanya jauh lebih
banyak. Pada jumlah alamat per-instruksi banyak, jumlah bit dan referensi
instruksi lebih banyak sehingga waktu eksekusi lebih lama. Sehingga diperlukan
register CPU yang banyak, namun operasi antar register lebih cepat serta lebih
mudah mengimplementasikan fungsi-fungsi yang kita inginkan. Sehingga jumlah
instruksi per-program jauh lebih sedikit

Untuk lebih jelas perhatikan contoh-contoh instruksi dengan jumlah


register berbeda untuk menyelesaikan persoalan yang sama.

Contoh penggunaan instruksi dengan alamat 1, 2 dan 3 untuk


menyelesaikan operasi hitungan:
Y = (A - B) : (C + D * E)

Contoh instruksi 2 dan 3 alamat

 Instruksi 3 alamat
Spesifikasi :
* Simbolik: a = b + c
* Format alamat: hasil, operand1, operand2
* Digunakan dalam arsitektur MIPS
Instruksi Komentar
SUB Y, A, B Y =A — EI
MF'Y T, D, E T= D >< E
ADD T, T, C T=T + C
DIV Y, Y, T Y= Y + T

 Instruksi 2 alamat
Spesifikasi :
* Simbolik: a = a + b
* Satu alamat diisi operand terlebih dahulu kemudian digunakan untuk
menyimpan hasilnya.
* Tidak memerlukan instruksi yang panjang.

12
* Jumlah instruksi per program akan lebih banyak dari 3 alamat.
* Diperlukan penyimpanan sementara untuk menyimpan hasil.

Instruksi KOmmentar
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.

 Instruksi 1 alamat
Spesifikasi :
* Memerlukan alamat implisit untuk operasi
* Menggunakan register accumulator (AC) dan digunakan pada mesin
lama.
Instruksi Komentar
LOAD D AC =D
MPY E AC = AC E
ADD C AC= AC + C
STOP Y Y = AC
LOAD A AC = A
SUB B AC = AC - B
DN Y AC =AC + Y
STOP Y Y= AC

 Instruksi 0 (Keterangan isi stack)

Spesifikasi :
* Seluruh alamat yang digunakan adalah implisit
* Digunakan pada organisasi memori, terutama operasi stack

Instruksi komentar
PUSH B B
PUSH A B.A
SUB A-B (A-B)
PUSH E (A·B).E
PUSH D (A-B).E.D
MUL D*E (A-B).(D*E)
PUSH C [A-B).(D*E).C
ADD C+(D*E) (A-B).(C+D*E)
DIV {A-B)/(C+(D*E)} (A-B)/(C+(D"E}}

12
BAB II
PENUTUP

Kesimpulan

 Dapat disimpulan bahwa instruksi - instruksi mesin 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)

12
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 diadakan
penyimpanan 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.

DAFTAR PUSTAKA

Ir,Sinar n m p, Simamora,2008,Sistem Angka dan Representasi Data,[online],


(http://www.slideshare.net/snmpsimamora/number-systems-in-computer-
systems, Diakses tanggal 9 Oktober 2013)

Laksamana Embun,2010, Sistem Bilangan Komputer,[online],(http://laksamana-


embun.blogspot.com/2010/01/sistem-bilangan.html, Diakses tanggal 9
Oktober 2013)

12
Galang Oktaviano ,2012,Arsitektur Set Instruksi(tugas ke2),[online]
(http://ghalankoktaviano.blogspot.com/2012/11/arsitektur-set-instruksi-tugas-
ke-2.html, Diakses tanggal 9 Oktober 2013)

Jovanangga, 2012,Set Instruksi dan Teknik Pengalamatan,[online],


(http://jovanangga.blogspot.com/2012/11/set-instruksi-dan-teknik-
pengalamatan.html, Diakses tanggal 9 Oktober 2013)

12

Anda mungkin juga menyukai