Set
Instruksi (instruction set) adalah kumpulan lengkap dari perintah-perintah yang
dapat di mengerti oleh Unit Processing (CPU)
Set
Instruksi sering juga disebut sebagai bahasa mesin, aslinya berbentuk
biner-biner tetapi kemudian di mengerti sebagai bahasa Assembly, dan
disederhanakan menjadi singkatan-singkatan berrupa Kode agar mudah dimengerti
manusia .
Instruksi tu sendiri
terdiri dari sebuah opcode dan beberapa operand
*Istilah:
-Opcode(Operation Code)
: Merupakan bagian perintah yang harus di kerjakan. Kode-kode operasi ditulis
dalam bentuc Mnemonic / singkatan yang mudah diingat . Cth:MOV,ACALL,RET,dsb.
-Operand : Merupakan
pelengkap bagian kode operasi tetapi tak semua kode operasi memerlukan operand.
Operand sangat bervasriasi, bisa berupa kode2 yang dipakai untuk menyatakan
Register dan prosesor.
Di dalam
sebuah instruksi terdapat beberapa elemen-elemen instruksi:
1.
Operation
code (op code)
2.
Result
operand reference
3.
Source
operand reference
4.
Xext
instruction preference
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.
Jenis-Jenis
Instruksi
v Pengolahan data (data processing),
meliputi operasi-operasi aritmetika dan logika. Operasi aritmetika 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.
meliputi operasi-operasi aritmetika dan logika. Operasi aritmetika 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.
v 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.
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.
v 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.
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.
v Kontrol aliran program (program flow
control),
berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.
berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.
Jumlah Alamat :
- Jumlah register atau alamat yang digunakan dalam operasi CPU tergantung format operasi masing-masing CPU.
- Ada format operasi yang menggunakan 3, 2, 1 dan 0 register.
- Umumnya yang digunakan adalah 2 register dalam suatu operasi. Desain CPU saat ini telah menggunakan 3 alamat dalam suatu operasi, terutama dalam MIPS (Milyar Instructions Per Second)
- Alamat per instruksi yang lebih sedikit akan membuat instruksi lebih sederhana dan pendek, tetapi lebih sulit mengimplementasikan 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.
- 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.
- Diperlukan register CPU yang banyak, namun operasi antar register lebih cepat.
- Lebih mudah mengimplementasikan fungsi-fungsi yang kita inginkan.
q
Format instruksi 3 alamat
Mempunyai
bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamat 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
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
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
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
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
Spesifikasi
instruksi 3 alamat :
- Simbolik : a = b + c.
- Format alamat : hasil, operand 1, operand 2.
- Digunakan dalam arsitektur MIPS.
- Memerlukan word panjang dalam suatu instruksi.
Spesifikasi
instruksi 2 alamat :
- Simbolik : a = a + b.
- Satu alamat diisi operand terlebih dahulu kemudian digunakan untuk menyimpan hasilnya.
- Tidak memerlukan instruksi yang panjang.
- Jumlah instruksi per program akan lebih banyak daripada 3 alamat.
- Diperlukan penyimpanan sementara untuk menyimpan hasil.
Spesifikasi
instruksi 1 alamat :
- Memerlukan alamat implisit untuk operasi.
- Menggunakan register akumulator (AC) dan digunakan pada mesin lama.
Spesifikasi
instruksi 0 alamat :
- Seluruh alamat yang digunakan implisit.
- Digunakan pada organisasi memori, terutama operasi stack.
http://www.4shared.com/office/KVurIF/SET_INSTRUKSI_MODUS_PENGALAMAT.html
Tidak ada komentar:
Posting Komentar