Minggu, 06 April 2014

SET Instruksi

SET Instruksi
Apa set instruksi itu?
ž  Set instruksi (instruction set): sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU
ž  Disebut juga machine code (bahasa mesin), aslinya juga berbentuk biner à bahasa assembly
ž  Untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti à bahasa yang dapat dimengerti 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

Dalam sebuah instruksi, tidak harus semua elemen ini dicantumkan, tergantung kebutuhan dan jenis instruksinya

Ke mana operand disimpan?
ž  Ingat: Semua instruksi dijalankan dalam CPU
ž  Rata-rata operasi hanya membutuhkan register sebagai tempat membaca / menyimpan operand
ž  Adakalanya juga register tidak berisi operand tapi menunjuk ke tempat penyimpanan lainnya (memory, cache, modul I/O
Representasi Instruksi
ž  Pada bahasa mesin, setiap instruksi berbentuk pola bit biner yang unik
ž  Agar dapat dimengerti manusia, dibuatlah representasi simbolik instruksi, biasanya berupa singkatan (disebut mnemonic)
  misal ADD, SUB, LOAD
ž  Sedangkan alamat operand direpresentasikan sebagai berikut:
  ADD A,B
ž  Ada beberapa jenis representasi instruksi, tergantung dari jumlah alamat operand yang bisa diolah oleh satu instruksi



Contoh 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

Cakupan Jenis Instruksi
ž  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.

Format Instruksi 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
ž  Program lebih pendek

Format Instruksi 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


Format Instruksi 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


Format Instruksi 0 Alamat
ž  Bentuk umum: [OPCODE]
ž  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

Contoh Format Instr 3 Alamat
ž  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
Contoh Format Instr 2 Alamat
ž  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

Contoh Format Instr 1 Alamat
ž  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
Contoh Format Instr 0 Alamat
ž  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]

Yang Perlu Diperhatikan
ž  Semakin banyak register yang diolah dalam satu instruksi à semakin lambat
ž  Semakin banyak baris operasi untuk mengeksekusi sebuah program à juga semakin lambat
ž  Oleh karena itu, CPU masa kini bisa dikatakan menggunakan perpaduan dari beberapa format instruksi, tergantung konteksnya

Latihan
ž  Kerjakan
ž  X = (A + B × C) / (D – E × F)
ž  X = (A + B × C) *(D – E × F)
ž  X = (A + B × C) +(D – E × F)
ž  X = (A + B × C) - (D – E × F)
ž   
ž  Masing-masing dengan:
ž  Format Instruksi 3 Alamat
ž  Format Instruksi 2 Alamat
ž  Format Instruksi 1 Alamat
ž  Format Instruksi 0 Alamat


Salah satu atau salah dua dari 4 soal Latihan di atas Insya Alloh akan digunakan untuk materi soal Ujian Tengah Semester. Silahkan gunakan waktu dan kesempatan sebelum UTS ini untuk mempelajarinya. Ok. J



Tidak ada komentar:

Posting Komentar