Tuesday, April 5, 2016

Set Instruksi

Instruksi mesin yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi CPU. Kumpulan fungsi yang dapat dieksekusi CPU disebut set instruksi CPU.

Elemen Instruksi Mesin
- Operation code (opcode) : menspesifikasikan operasi yang akan dilakukan, kode operasi berbentuk kode biner.
- Source operand reference : operasi dapat berasal lebih dari satu sumber, operan adalah input operasi.
- Result operand reference : hasil atau keluaran operasi
- Next instruction reference : menginformasikan kepada CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi.

Representasi Instruksi
Instruksi komputer direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi beberapa field. Field-field tersebut diisi oleh elemen-elemen instruksi yang membawa informasi bagi operasi CPU. Layout instruksi dikenal dengan format instruksi.

Perancangan set instruksi banyak berpengaruh pada aspek lain dalam arsitektur komputer. Set instruksi merupakan alat bagi programmer untuk mengontrol kerja CPU serta menentukan banyak fungsi yang harus dilakukan CPU.

Format Instruksi
Kode operasi (opcode) direpresentasikan dengan singkatan-singkatan, yang disebut mnemonic. Mnemonic mengindikasikan suatu operasi bagi CPU. Contoh mnemonic :
ADD   = penambahan
SUB    = pengurangan
LOAD = muatkan data ke memori

Operand dari Operasi
Berdasarkan sumbernya, operand suatu operasi dapat berada pada salah satu dari ketiga daerah berikut :
- Memori utama atau memori virtual
- Register CPU
- Perangkat I/O

Contoh representasi operand secara simbolik (bahasa mesin) :
ADD X, Y artinya : tambahkan nilai yang berada pada lokasi Y ke isi register X, dan simpan hasilnya di register X.
Setiap opcode simbolik memiliki representasi biner yang tetap dan programmer dapat menetapkan lokasi masing-masing operand.

Contoh suatu ekspresi bilangan :
X = X + Y;
X dan Y berkorespondensi dengan lokasi 210 dan 211
Pernyataan dalam bahasa tingkat tinggi tersebut menginstruksikan komputer untuk melakukan langkah berikut :
1. Muatkan sebuah register dengan isi lokasi memori 210
2. Tambahkan isi lokasi memori 211 ke register
3. Simpan isi register ke lokasi memori 210

Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa mesin. Dalam bahasa tingkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat menggunakan variabel. Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan antar register.

Kumpulan Set Instruksi
1. Pengolahan Data (Data Processing)
Meliputi operasi-operasi aritmatika (komputasi untuk pengolahan data numerik) dan logika (beroperasi terhadap bit-bit).
2. 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.
3. Penyimpanan Data (Data Storage)
Berisi instruksi penyimpanan ke memori. Data yang disimpan akan digunakan untuk operasi berikutnya, minimal untuk ditampilkan pada layar harus diadakan penyimpanan walaupun sementara.
4. Kontrol Aliran Program (Program Flow Control)
Berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan pencabangan ke set instruksi lain.

Jumlah Alamat
Jumlah register atau alamat yang digunakan dalam operasi CPU tergantung format operasi masing-masing CPU.
Contoh penggunaan set instruksi dengan alamat 1, 2, dan 3 untuk menyelesaikan operasi hitungan :
Y = (A - B) / (C + D * E)

Instruksi 3 alamat :
Instruksi
Komentar
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

Instruksi 2 alamat :
Instruksi
Komentar
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 :
Menggunakan register akumulator (AC).
Instruksi
Komentar
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

Instruksi 0 alamat :
Instruksi
Keterangan
Isi Stack
PUSH
B
B
PUSH
A
B, A
SUB
A - B
(A - B)
PUSH
E
(A - B), E
PUSH
D
(A - B), E, D
MPY
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))

Operasi Set Instruksi Secara Umum
Jenis
Nama Operasi
Keterangan
Pemindahan 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 dengan 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 stack teratas ke tujuan
Logika
AND
Melakukan operasi logika tertentu terhadap bit
OR
NOT
Exclusive-OR
Test
Menguji kondisi tertentu
Compare
Membandingkan 2 operand (secara logika maupun aritmatika)
Set Variabel Kontrol
Menyetel kontrol bagi keperluan proteksi, interrupt, kontrol timer
Shift
Melakukan penggeseran bit-bit operand
Rotate
Melakukan pemutaran nit-bit operand
Pemindahan Kontrol
Jump (cabang)
Perpindahan tidak bersyarat, memuatkan PC dengan alamat tertentu
Jump bersyarat
Menguji persyaratan tertentu, melakukan aktivitas berdasarkan persyaratannya
Jump ke subrutin
Menempatkan informasi data kontrol program saat itu di lokasi yang ditentukan, melompat ke alamat tertentu
Return
Mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu
Execute
Mengambil operand dari lokasi tertentu dan mengeksekusinya sebagai instruksi
Skip
Menambah PC sehingga melompati instruksi berikutnya
Skip bersyarat
Melompat berdasarkan syarat tertentu
Halt
Menghentikan eksekusi program
Wait (hold)
Menghentikan eksekusi program dan menguji persyaratan
No operation
Tidak ada operasi yang dilakukan, namun eksekusi program dilanjutkan
Input/Output
Input (read)
Memindahkan data dari port I/O ke tujuan
Output (write)
Memindahkan data dari prosesor ke port atau modul I/O
Start I/O
Memindahkan instruksi ke prosesor I/O untuk memulai proses I/O
Test I/O
Memindahkan informasi status dari sistem I/O ke tujuan
Konversi
Translate
Menerjemahkan nilai-nilai dalam suatu bagian memori berdasarkan tebel korespondensi
Convert
Mengkonversi isi word ke bentuk lain

No comments:

Post a Comment