Jumat, 13 Desember 2013

Set Instruksi



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.

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.

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.

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.

   
  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

      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

        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

         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




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.          



 Sumber: http://adi-lecture.blogspot.com/2013/02/set-instruksi-dan-pengalamatan.html
               http://www.4shared.com/office/KVurIF/SET_INSTRUKSI_MODUS_PENGALAMAT.html

Tidak ada komentar:

Posting Komentar