Jenis Operan dan Jenis Operasi Instruksi Mesin
Instruksi mesin komputer adalah Instruksi-instruksi yang
dieksekusi oleh CPU yang dapat melakukan bermacam-macam fungsi.
Elemen-elemen
instruksi mesin
1. Operation Code (Opcode), kode operasi: menspesifikasikan operasi yang akan
dilakukan, dimana operasi ini dispesifikasikan oleh kode biner.
2. Source Operand
Reference, referensi perand sumber:
operasi dapat mencakup satu atau lebih operand sumber, operand merupakan input
bagi operasi.
3. Result Operand
Reference, referensi operand hasil:
operasi harus dapat membuat hasil operasi.
4. Next Instruction
Reference, referensi operand
berikutnya, adalah elemen yang memberitahu CPU posisi instruksi berikutnya yang
harus diambil setelah menyelesaikan eksekusi atau instruksi.
Sumber dan hasil operan dapat berada disalah satu dari
daerah berikut:
1. Main memori , virtual memori : dengan adanya referensi instruksi
berikutnya maka alamat memori utama atau virtual memori harus dikatahui.
2. Register CPU : berisi sejumlah register atau lebih yang dapat
direferensikan oleh instruksi-instruksi mesin.
3.
I/O device,
peralatan I/O: instruksi harus menspesifikasikan modul I/O dan perangkat yang
diperlukan oleh operasi.
Jenis instruksi
Set instruksi mesin harus dapat mengekspresikan setiap instruksi
bahasa tingkat tinggi. Jenis–jenis instruksi digolongkan sebagai berikut:
1. Data processing, data pengolah : instruksi –instruksi aritmetika dan
logika.
2. Data storage, penyimpan data : instruksi memori.
3. Data movement, perpindahan data : instruksi I/O.
4. Control : instruksi pemeriksaan dan pencabangan.
Faktor yang penting dalam rancangan set
instruksi:
1. Repertoir operasi, berapa banyak dan operasi apa sajayang
harus disediakan.
2. Type/jenis data, berbagai jenis data pada saat operasi
dijalankan.
3. Register, jumlah register CPU yang direferensikan oleh
instruksi dan apa fungsinya.
4. Addressing/pengalamatan: mode untuk menspesifikasikan
alamat suatu operand.
JENIS OPERAND
Instruksi mesin melakukan operasi terhadap data. Pada
umumnya data dikategorikan ke dalam angka, karakter dan data logika.
a. Angka
Setiap bahasa mesin mengandung tipe data
numerik. Umunya terdapat tiga tipe data angka yang ada pada komputer yaitu: Binary
integer; Binary floating point; Desimal
Semua operasi pada internal komputer berupa data biner,
namun user berinteraksi dengan bilangan desimal. Maka perlu dilakukan konversi
dari desimal ke bilangan biner pada input dan konversi dari biner ke desmimal
pada output. Bilangan desimal direpresentasikan dalam 4 bit kode biner maka
0=0000, 1=0001,...,8=1000, 9=1001. Sedangkan untuk desimal 246 = 0000 0010 0100
0110. Untuk bilangan negatif direpresentasikan dengan 4 bit yang diletakkan
pada awal atau akhir string. Standar tanda yang digunakan adalah 1100 untuk
bilangan positif dan 1101 untuk tanda bilangan negatif.
b. Karakter
Umumnya bentuk data adalah teks atau
kumpulan karakter. Sedangkan sistem komputer didesain untuk data biner. Maka
sejumlah kode dalam urutan bit perlu di tentukan untuk merepresentasikan sebuah
karakter. Saat ini standar kode yang digunakan untuk merepresentasikan karakter
adalah American Standart Code for Information Interchange(ASCII). Setiap
karakter pada kode ASCII direpresentasikan dengan 7 bit biner yang unik. Maka
terdapat 128 karakter yang berbeda yang dapat direpresentasikan. Selain itu
juga ada yang menggunakan Extended Binary Coded Decimal Interchange Code (EBCDIC)
yang digunakan oleh IBM mainframe.
c. Data
logika
Pada umumnya setiap word atau yang lain merupakan satu
unit data yang masing masing unit data memiliki nilai 0 atau 1. Ketika
dipandang dengan cara ini, maka data tersebut dianggap sebagai data logika.
Data logika hanya bernilai true “1” atau false “0”.
JENIS OPERASI
Jumlah opcode dari sebuah
mesin ke mesin lain beragam. Akan tetapi tipe operasi-operasi umum akan sama
untuk semua mesin. Berikut dikategorikan operasi berdasarkan fungsi dan
tipenya:
a. Transfer
data
b. Aritmatikaa
c. Logika
d. Konversi
e. Input/output
f. Kendali
sistem
g. Kendali
transfer
Contoh
Instruksi Umum Pada CPU
No
|
Tipe
|
Instruksi
|
Nama
|
Aksi
|
1
|
Transfer
data
|
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
|
PUSH
|
Mentransfer
data dari sumber ke stack
|
POP
|
Mentransfer
data dari stack ke tujuan
|
XCHG
|
Saling
menukar isi sumber dan tujuan
|
CLEAR
|
Me-reset
tujuan dengan semua bit ‘0’
|
SET
|
Mengeset
tujuan dengan semua bit ‘1’
|
2
|
Aritmatika
|
ADD
|
Penjumlahan,
hitung jumlah dari 2 operan
|
SUB
|
Pengurangan,
hitung selisih dari 2 operan
|
MUL
|
Perkalian,
hitung hasil kali dari 2 operan
|
DIV
|
Pembagian,
hitung hasil bagi dari 2 operan
|
NEG
|
Negasi,
ganti tanda operan
|
INC
|
Tambahkan
1 pada operan
|
DEC
|
Kurangkan
1 dari operan
|
SHIFT
A
|
Geser
operan (kekiri atau kekanan) dengan tanda
|
3
|
Logika
|
NOT
|
Komplemenkan
(komplemen 1) operan
|
OR
|
Lakukan
operasi logika OR pada operan
|
AND
|
Lakukan
operasi logika AND pada operan
|
XOR
|
Lakukan
operasi logika XOR pada operan
|
SHIFT
|
Geser
operan (kekiri atau kekanan), isi nilai pada ujung bit
|
ROT
|
Geser
operan (kekiri atau kekanan) dengan berputar
|
TEST
|
Uji
kondisi yang ditetapkan dan pengaruhi flag yang sesuai
|
4
|
Kendali
Transfer
|
JUMP
|
Perpindahan
tak bersyarat, masukkan alamat yang ditetapkan ke PC
|
JUMPIF
|
Perpindahan
bersyarat, masukkan alamat yang ditetapkan ke PC jika kondisi terpenuhi
|
JUMPSUB
|
CALL,
simpan ‘status program control’ yang sekarang, pindah kealamat yang ditetukan
ke PC
|
RET
|
RETURN,
restore ‘status program control’ dari stack ke PC dan register/flag yang
relevan lainnya
|
5
|
Input/Output
|
IN
(read)
|
Mentransfer
data dari perangkat atau port i/o yang ditentukan ke tujuan (memori utama
atau register)
|
|
|
OUT
(write)
|
Mentransfer
data dari sumber yang ditentukan ke perangkat atau port i/o
|
|
|
START
I/O
|
Mentransfer
instruksi ke prosesor i/o untuk menginisiasi operasi i/o
|
|
|
TEST
I/O
|
Mentransfer
informasi status dari sistem i/o ke instruksi yang ditentukan
|
6
|
Konversi
|
TRANSLATE
|
Menterjemahkan
nilai-nilai dalam suatu bagian memori berdasarkan tabel korespodensi
|
|
|
CONVERT
|
Mengkonversi
isi suatu word dari suatu bentuk ke bentuk lainnya (contoh decimal ke biner)
|
a. Transfer data
Tipe instruksi mesin yang paling dasar
yaitu instruksi transfer data. Pada instruksi transfer data harus ditentukan
beberapa hal. Pertama, penentuan lokasi sumber dan tujuan dari operan.Lokasinya
dapat terletak di memori, register atau stack. Kedua, panjang data yang akan
ditransfer harus diketahui. Ketiga, sama untuk semua instruksi dengan operan,
cara pengalamatannya harus ditentukan.
Dari sisi aksi prosesor, operasi
transfer data mungkin merupakan tipe yang paling sederhana. Jika kedua-duanya
baik sumber maupun tujuan adalah register, maka prosesor hanya
menyebabkan data dipindahkan dari satu register ke register lain (operasi
internal prosesor). Jika salah satu atau kedua operan berada dalam memori, maka
prosesor harus melakukan beberapa atau semua tindakan berikut.
1. Menghitung alamat memori, berdasarkan mode
pengalamatan ( dibahas di bagian selanjutnya)
2.
Jika alamat mengacu pada virtual memori,
menerjemahkan dari alamat memori virtual ke alamat memori sebenarnya/fisik.
3.
Menentukan apakah operan yang dituju ada di
dalam chace
4.
Jika tidak, berikan perintah ke modul memori.
b. Aritmatika
Kebanyakan mesin menyediakan operasi
aritmatika/perhitungan dasar seperti tambah, kurang, kali, dan bagi.
Dimana operasi tersebut disediakan untuk menangani bilangan integer bertanda
(fixed-point), juga bilangan floating point atau desimal.
Eksekusi instruksi aritmatika dapat melibatkan operasi
transfer data untuk menempatkan operan dari input ke ALU, dan untuk
mengantarkan output dari ALU.
c. Logika
Kebanyakan mesin juga menyediakan berbagai operasi untuk
memanipulasi setiap bit dari sebuah word atau unit (yang dapat diberi alamat)
lainnya, operasi ini juga di sebut "bit
twiddling". Bit-bit tersebut didasarkan pada operasi boolean. Beberapa
operasi logika dasar dapat dilakukan pada data boolean atau biner yang
ditunjukkan pada tabel berikut.
Contoh
Operasi Logika Dasar
d. Konversi
Instruksi konversi adalah
instruksi-instruksi yang mengubah format atau beroperasi pada format data. Contohnya
yaitu mengkonversi dari desimal ke biner.
e. Input/Output
Beberapa pendekatan I/O yang bisa
diambil, diantaranya programmed I/O (isolated&memory mapped), DMA, dan
penggunaan prosesor I/O. Implementasi instruksi I/O banyak dilakukan dengan
hanya menyediakan beberapa instruksi I/O, dengan tindakan spesifik yang
ditentukan oleh parameter, kode, atau kata perintah.
f.
Kendali
Sistem
Instruksi kendali sistem adalah
instruksi yang dapat dieksekusi hanya ketika prosesor dalam keadaan tertentu
atau mengeksekusi program pada area khusus dalam memori. Biasanya, instruksi
ini dipesan untuk digunakan sistem operasi. Contoh Sebuah instruksi kendali
sistem boleh membaca atau mengubah kendali register; instruksi untuk membaca
atau memodifikasi penyimpanan protection key, seperti yang digunakan pada
sistem memori EAS/390; akses untuk memproses blok kontrol dalam sistem
multiprogramming.
g. Kendali Transfer
Untuk semua tipe operasi yang sudah dibahas sejauh ini,
instruksi selanjutnya yang akan dibahas tepat setelah ini, pada memori, adalah
kendali transfer. Namun, pecahan yang signifikan dari instruksi dalam setiap
program memiliki fungsi mengubah urutan eksekusi instruksi. Untuk instruksi
ini, operasi yang dilakukan oleh prosesor
Sumber:
0 komentar: