Arsitektur Set Instruksi - restubj.files.wordpress.com fileMacam-macam mode pengalamatan. ......
-
Upload
truongdang -
Category
Documents
-
view
244 -
download
0
Transcript of Arsitektur Set Instruksi - restubj.files.wordpress.com fileMacam-macam mode pengalamatan. ......
Tujuan
Memahami representasi set instruksi, dan jenis-jenisformat instruksi.
Mengetahui jenis-jenis tipe operand yang digunakan.
Macam-macam mode pengalamatan.
Format instruksi.
Memahami implementasi set instruksi.
Apa itu Set Instruksi ?
Set Instruksi (instruction set) : Sekumpulan instruksilengkap yang dapat dimengerti oleh CPU.
Disebut juga machine code (bahasa mesin), aslinya jugaberbentuk biner bahasa assembly.
Untuk konsumsi manusia (programmer), digunakanrepresentasi yang lebih mudah dimengerti bahasayang dapat dimengerti oleh manusia.
Elemen-Elemen Instruksi
Operation Code (Op Code)
– Kerjakan ini
Source Operand Reference
– Terhadap isi alamat ini
Result Operand Reference
– Letakkan hasilnya di alamat ini
Next Instruction Reference
– Kalau sudah selesai, selanjutnya kerjakan alamat ini
Operand ?
Main memory (or virtual memory or cache).
CPU register
I/O device
Penyajian Instruksi
Pada bahasa mesin, setiap instruksi berbentuk pola bit biner yang unik.
Agar dimengerti oleh manusia dibuatlah representasisimbolik instruksi, berupa singkatan (disebut Mnemonic).
– Contoh : LOAD, MOVE, ADD, SUB, MPY, DIV, STORE
Sedangkan alamat operand direpresentasikan sebagaiberikut :
– Contoh : ADD A, B
Jenis Instruksi
Data processing
Arithmetic (ADD, SUB, MPY, DIV), Logical (AND, OR, XOR), konversi data.
Data storage (main memory)
Transfer data (LOAD, MOVE, STORE).
Data movement (I/O)
Input dan Output ke modul I/O.
Program flow control
JUMP, HALT.
Instruksi 3 Alamat
Bentuk umum : Operand 1, Operand 2, Result
Satu alamat hasil, dua alamat operand.
Contoh : SUB Y, A, B
Bentuk algoritmik : Y = A – B
Arti : Kurangkan isi register A dengan isi register B, kemudian simpan hasilnya di register Y.
Bentuk ini tidak umum digunakan di komputer karenamengoperasikan banyak register sekaligus.
Program lebih pendek.
Instruksi 2 Alamat
Bentuk umum : Salah satu sebagai operand dan result.
Contoh : SUB Y, B
Bentuk algoritmik : Y = Y – B
Arti : Kurangkan isi register Y dengan isi register B, kemudian simpan hasilnya di register Y.
Instruksi ini masih digunakan di komputer sekarang.
Mengoperasikan lebih sedikit register, dan panjangprogram tidak bertambah terlalu banyak.
Instruksi 1 Alamat
Bentuk umum : Satu alamat operand, hasil disimpan diAccumulator.
Contoh : SUB B
Bentuk algoritmik : AC = AC – B
Arti : Kurangkan isi Accumulator dengan isi register B, kemudian simpan hasilnya di register accumulator.
Bentuk ini digunakan di komputer zaman dulu.
Hanya mengoperasikan satu register, tapi program menjadi bertambah panjang.
Instruksi 0 Alamat
Bentuk umum : Semua alamat operand implisit, disimpandalam bentuk stack.
Operasi membutuhkan 2 operand, akan mengambil isistack paling atas dan dibawahnya.
Contoh : SUB
Bentuk algoritmik : S[top] = S[top-1] – S[top]
Arti : Kurangkan isi stack nomor 2 dari atas dengan isistack paling atas, kemudian simpan hasilnya di stack paling atas.
Instruksi khusus stack : PUSH dan POP.
Contoh Instruksi 3 Pengalamatan
A, B, C, D, E = Operand; T, Y = Register.
Program : Y = (A – B) / (C + D * E)
(1) SUB Y, A, B Y = A – B
(2) MPY T, D, E T = D * E
(3) ADD T, C, T T = C + T
(4) DIV Y, Y, T Y = Y / T
Menggunakan 4 instruksi.
Contoh Instruksi 2 Pengalamatan
A, B, C, D, E = Operand; T, Y = Register.
Program : Y = (A – B) / (C + D * E)
(1) MOVE Y, A Y = A
(2) SUB Y, B Y = A – B
(3) MOVE T, D T = D
(4) MPY T, E T = D * E
(5) ADD T, C T = C + T
(6) DIV Y, T Y = Y / T
Menggunakan 6 instruksi.
Contoh Instruksi 1 Pengalamatan
A, B, C, D, E = Operand; Y = Register. Program : Y = (A – B) / (C + D * E)
(1) LOAD A AC = A(2) SUB B AC = AC – B(3) STORE Y Y = AC(4) LOAD D AC = D(5) MPY E AC = AC * E(6) ADD C AC = C + AC(7) DIV Y AC = Y / AC(8) STORE Y Y = AC
Menggunakan 8 instruksi.
Contoh Instruksi 0 Pengalamatan
A, B, C, D, E = Operand; Y = Register. Program : Y = (A – B) / (C + D * E)
(1) PUSH A S[top] = A(2) PUSH B S[top] = B(3) SUB S[top] = A – B(4) PUSH C S[top] = C(5) PUSH D S[top] = D(6) PUSH E S[top] = E(7) MPY S[top] = D * E(8) ADD S[top] = C + S[top](9) DIV S[top] = S(top) / S[top](10) POP Y Out = S[top]
Menggunakan 10 instruksi.
Siklus Instruksi
Terdapat 2 tahapan siklus, yaitu :
– FETCH
– EXECUTE.
Siklus FETCH
Program Counter (PC) berisi address instruksi berikutnyayang akan diambil.
Processor mengambil instruksi dari memori pada lokasiyang ditunjuk oleh PC.
Naikkan PC
– Kecuali ada perintah tertentu
Instruksi dimasukkan ke Instruction Register (IR).
Processor meng-interpret dan melakukan tindakan yang diperlukan.
Siklus EXECUTE
Processor - Memory
– Transfer data antara CPU dengan main memory.
Processor I/O
– Transfer data antara CPU dengan I/O module.
Data Processing
– Operasi arithmetic dan logical pada data tertentu.
Control
– Mengubah urutan operasi
– Contoh : Jump
Kombinasi diatas.
Contoh Eksekusi Program
Kesimpulan
Semakin banyak register yang diolah dalam satu instruksimaka akan semakin lambat.
Semakin banyak baris operasi untuk mengeksekusisebuah program maka juga semakin lambat.
Oleh karena itu, CPU masa kini bisa dikatakanmenggunakan perpaduan dari beberapa format instruksi, tergantung konteksnya.
Latihan (1)
A, B, C, D, E = Operand; T, Y = Register.
Program : Y = (A * B) – (C / D + E)
Kerjakan dengan :
– Instruksi 3 Alamat.
– Instruksi 2 Alamat.
– Instruksi 1 Alamat.
Latihan (2)
A, B, C, D, E, F = Operand; T, Y = Register.
Program : Y = (A + B * C) / (D – E * F)
Kerjakan dengan :
– Instruksi 3 Alamat.
– Instruksi 2 Alamat.
– Instruksi 1 Alamat.