set intrusi 2
Set instruksi merupakan salah satu bahasan pada bidang Organisasi dan Arsitektur komputer. Pada paper ini akan dijelaskan mengenai beberapa bahasan mengenai set instruksi yaitu tentang fungsi dan karakteristik, dan juga tentang format dan cara pengalamatan pada set instruksi.
Pengertian mengenai set instruksi, fungsi dan karakteristik
Set instruksi (instruction set) merupakan sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU. Disebut juga machine code (bahasa mesin), aslinya juga berbentuk biner yang merupakan bahasa assembly. Untuk konsumsi manusia (dalam hal ini programmer), biasanya digunakan representasi yang lebih mudah dimengerti yaitu berupa bahasa yang dapat dimengerti manusia.
Sehingga dapat dibagi menjadi:
-Kumpulan instruksi lengkap yang dimengerti oleh CPU
-Kode mesin
-Biner
-Kode assembly
Elemen umum pada set instruksi:
1.Operation code (Op code)
-Kerjakan yang telah diperintahkan
2.Source Operand reference
-Dengan menggunakan data ini
3.Result Operand reference
-Simpan hasil pengerjaan disini
4.Next Instruction Reference
-Perintah selanjutnya setelah perintah sebelumnya telah selesai dikerjakan
Operand pada set instruksi dapat berasal dari:
-Main memory (or virtual memory or cache)
-CPU register
-I/O device
Beberapa tipe penyajian instruksi:
1.Dlm kode mesin setiap instruksi memiliki pola-bit tertentu
2.Untuk konsumsi programmers disediakan penyajian simbolik
Contoh: ADD, SUB, LOAD
3.Operand juga disajikan secara simbolik
Contoh: ADD A,B
Contoh simbolik set 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
Dengan jenis instruksi yang diperintahkan antara lain:
Data processing: Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb); konversi data
Data storage (memory): Transfer data (STOR, LOAD, MOVE, dsb)
Data movement: Input dan Output ke modul I/O
Program flow control: JUMP, HALT, dsb.
Beberapa jenis operand:
-Addres
-Number
Contoh: Integer/floating point
-Character
Contoh: ASCII etc.
-Logical Data
Contoh: Bits or flags
Format instruksi berdasarkan jumlah alamat:
-Menggunakan 3 alamat
Bentuk umum: [OPCODE] [AH], [AO1], [AO2]
Satu alamat hasil, dua alamat operand
Misal: SUB Y, A, B
- Bentuk algoritmik: Y à A – B
- Arti: Kurangkan isi Reg A dengan isi Reg B, kemudian simpan hasilnya di Reg Y.
Bentuk ini tidak umum digunakan di komputer
Mengoperasikan banyak register sekaligus , perlu word yang panjang
Program lebih pendek
-Menggunakan 2 alamat
Bentuk umum: [OPCODE] [AH], [AO]
Satu alamat hasil merangkap operand, satu alamat operand
Misal: SUB Y, B
- Bentuk algoritmik: Y à Y – B
- Arti: Kurangkan isi Reg Y dengan isi Reg B, kemudian simpan hasilnya di Reg Y.
Bentuk ini masih digunakan di komputer sekarang
Mengoperasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak
Instruksi lebih pendek
Diperlukan kerja ekstra
Temporary storage untuk menyimpan beberapa hasil operasi
-Menggunakan 1 alamat:
Bentuk umum: [OPCODE] [AO]
Satu alamat operand, hasil disimpan di accumulator
Misal: SUB B
- Bentuk algoritmik: AC ß AC – B
- Arti: Kurangkan isi Acc. dengan isi Reg B, kemudian simpan hasilnya di Acc.
Bentuk ini digunakan di komputer jaman dahulu
Hanya mengoperasikan satu register, tapi program menjadi bertambah panjang
-Menggunakan 0 alamat:
Bentuk umum: [OPCODE] [O]
Semua alamat operand implisit, disimpan dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan di bawahnya
Misal: SUB
- Bentuk algoritmik: S[top] à S[top-1] – S[top]
- Arti: Kurangkan isi Stack no.2 dari atas dengan isi Stack paling atas,kemudian
simpan hasilnya di Stack paling atas
Ada instruksi khusus Stack: PUSH dan POP
Hal yang harus dipertimbangkan dalam penggunaan jumlah alamat:
-Addres banyak
# Instruksi semakin kompleks
# membutuhkan banyak register
# Program lebih pendek
# kecepatan waktu untuk eksekusi perintah akan berkurang/ proses menjadi lambat
-Addres sedikit
#Instruksi lebih sederhana
#Eksekusi lebih cepat
Jenis operasi pada set instruksi:
-Data Transfer
-Arithmetic
-Logical
-Conversion
-I/O
-System Control
-Transfer of Control
Set instruksi : format dan cara pengalamatan
Mode pengalamatan ini digunakan dalam set instruksi pada komputer yaitu untuk membatasi keterbasan format instruksi, dimana dapat merefernsi memori lokasi yang besar.
Mode pengalamatan yang dapat menangani keterbatasan tersebut, dimana masing-masing prosesor menggunakan mode penglamtan yang berbeda-beda dan memiliki pertimbangan dalam penggunaannya.
Ada 6 macam cara dalam mode pengalamatan :
1. Immmediate addressing
Merupakan bentuk pengalamtan yang paling sederhana, dimana operand benar-benar ada dalam instruksi atau bagian dari instruksi operand sama dengan field alamat. Umumnya bilangan akan disimpan dalam bentuk komplemen dua, dengan bit kiri sebagai bit tanda. Ketika operand dimuatkan ke dalam register data, bit tanda di geser ke kiri hingga maksimum word data.
Keuntungan dari mode pengalamatan ini adalah tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand, dan juga dapat menghemat siklus instruksi sehingga proses keseluruhan akan cepat . Namun kekurangan dari mode pengalamatan ini adalah ukuran bilangan dibatasi oleh ukuran field alamat
2. Direct addressing
Cara ini merupakan cara yang baik digunakan pada komputer lama dan komputer kecil, karena hanya memerlukan sebuah referensi memori dan tidak memerlukan sebauh kalkulus khusus.
Kelebihan dari mode pengalamatan ini, dimana field alamat berisi efektif address sebuah operand. Kelemahan dari mode penglamatan ini yaitu keterbatasan field alamat karena panjang fied alamat relatif lebih kecil dibanding panjang word.
3. Indirect addressing
Mode ini merupakan mode pengalamatan secara tidak langsung, dimana field mengacu pada alamat word di alamat memori, yang pada gilirannya akan berisi alamat oprand yang panjang.
Contoh pada kasus ADD(A) dimana tambahkan isi memori yang ditunjuk oleh isi memori alamat A ke akumulator.
Pada mode ini kelebihannya, dimana ruang bagi alamatnya menjadi besar, sehingga semakin banyak alamat yang mendapat referensi. Namun ada pula kekurangan dari mode pengalamatan ini yaitu,diperlukan refernsi memori ganda dalam suatu fetch sehingga memperlambat proses operasi.
4. Register addressing
Register addressing merupakan suatu mode pengalamatan yang cara kerjanya hampir mirip dengan mode pengalamatan langsung (direct addressing), namn perbedaannya terletak pada field alamat yang mengacu pada register, bukan pada memori utama.
Field yang mereferensi register yang memiliki panjang3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 general purpose.
Keuntungan dari mode pengalamatan register ini adalah Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori. Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat. Namun adapun kelemahan dari mode ini yaitu menjadi terbatasnya ruang alamat.
5. Register indirect addressing
Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak. Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung
6. Displacement addressing
Mode ini yaitu dengan operand berada pada alamat A ditambahkan isi register. Pada mode ini terdapat tiga model displacement yaitu :
-Relative addressing
-Base register addressing
-Indexing
Referensi:
Prof. William Fornaciari www.elet.polimi.it/~fornacia
Universidade do Minho – Dep. Informática - Campus de Gualtar – 4710-057 Braga - PORTUGAL- http://www.di.uminho.pt
http://burks.bton.ac.uk/burks/language/asm/asmtut/asm1.htm#toc
Tidak ada komentar:
Posting Komentar