SET INTRUKSI

            Setiap kombinasi dan struktur komputer pasti akan selalu ada instruksi-instruksi yang memang harus dipakai atau dijalankan agar supaya pemakaiannya maksimal sebagaimana yang kita inginkan. langsung saja kita ke pembahasan mengenai set instruksinya :


A.  Karakteristik Instruksi Mesin

Instruction set atau set instruksi merupakan kumpulan berbagai jenis instruksi dari CPU tertentu. Sedangkan elemen instruksi mesin merupakan setiap instruksi harus berisi informasi yang dibutuhkan oleh CPU untuk eksekusi. Elemen instruksi biasanya terdiri atas :

      Kode operasi berfungsi sebagai penentu operasi

      Sumber operan sebagai referensi data

      Hasil operand sebagai referensi data

      Instruksi selanjutnya yang akan dieksekusi (bisa diberikan dalam instruksi saat ini atau secara implisit diberikan - instruksi selanjutnya setelah instruksi saat ini).

Operan sumber dan operan hasil dapat berada di tiga bagian yaitu memori utama atau memori virtual yang merupakan alamat yang harus diberikan ketika sebuah instruksi dibuat. Selanjutnya yang kedua adalah register CPU baik register eksplisit maupun implisit. Termasuk jenis register eksplisit adalah pada penggunaan dua atau tiga register, sedangkan instruksi dengan satu register (satu instruksi operan), kemungkinan besar yang dilibatkan adalah register implisit (biasanya untuk operasi aritmatika) akumulator secara implisit dihubungkan sebagai operan hasil. Jenis operan sumber dan hasil yang kettika adalah perangkat I/O yang digunakan untuk instruksi I/O. Instruksi harus menentukan perangkat I/O atau modul yang digunakan, atau pada kasus memory-mapped I/O maka operan tujuan  adalah lokasi memori lain.

Sementara itu, seperti yang dipelajari pada mesin IAS, instruksi biasanya diwakili dengan pernyataan-pernyataan yang sifatnya mudah dipahami atau mudah diingat olehmADanDusi (mnemonik).aBrteinbyeraaptaamcobnathokhainnstruksi adalah sebagai berikut :

SUB                            artinya “kurangkan”

DIV                             artinya “bagi”

MUL                           artinya “kalikan”

ADD   R, Y,               artinya tambahkan data R (operan pertama) dan Y (operan kedua)

Gambar 6.1 Processor Organization

 

B.  Tipe Instruksi dan Jumlah Alamat

Tipe-tipe instruksi pada mesin komputer terbagi atas empat jenis yang meliputi instruksi untuk pengolahan data aritmatika dan instruksi logika, penyimpanan data yang merupakan instruksi memori, pergerakan Data dari dan menuju I/O atau biasa disebut sebagai instruksi I/O, Kontrol atau pengendalian yang merupakan instruksi engujian dan instruksi cabang serta aritmatika yang mampu memberikan kemampuan komputasi. Jumlah alamat pada instruksi menunjukkan jumlah operan yang dapat dilibatkan dalam operasi tertentu: bisa jadi satu, dua atau tiga, atau bahkan nol (stack machine).

Contoh Instruction Set pada mesin DLX (Hennessy & Patterson) adalah ADD R1, R2, R3 (instruksi RR) atau ADD R1, R2, A (instrruksi RX). Kemudian, contoh lain untuk instruksi yang melibatkan tiga alamat operan adalah sebagai berikut. Buatlah set instruksi atau program untuk mengeksekusi persamaan Y = (A-B) / (C + D * E) dengan menggunakan tiga alamat instruksi:


Instruksi

Komentar

 

SUB

Y,A,B

← A - B

MPY

T,D,E

← D x E

ADD

T,T,C

← T + C

DIV

Y,Y,T

← Y / T


Program aritmatika diatas hanya terdiri atas empat set instruksi, dalam program ini terlihat bahwa word length untuk alamat operan lebih panjang ketika menggunka tiga alamat yang terlibat sekaligus dalam setiap instruksi mesin. Sedangkan instruksi yang melibatkan dua buah alamat untuk permasalahan yang sama yaitu Y= (A-B) / (C + D * E) dapat dilihat pada contoh di bawah ini.


Instruksi

Komentar

 

MOVE

Y,A

← A

SUB

Y,B

← Y - B

MOVE

T,D

← D

MPY

T,E

← T * E

ADD

T,C

← T + C

DIV

Y,T

← Y / T

Dalam program dengan dua alamat tersebut diatas tampak bahwa program terdiri atas enam instruksi, dimana pada saat jumlah alamat yang terlibat berkurang (dua alamat, dibandingkan contoh sebelumnya tiga alamat) maka instruksi semakin panjang.

Penyelesaian persamaan Y = (A-B)/(C+D*E) dengan menggunakan satu alamat instruksi dapat dilihat pada contoh program di bawah ini

 

Instruksi

Komentar

 

LOAD

D

AC ← D

MPY

E

AC ← AC * E

ADD

C

AC ← AC + C

STOR

Y

← AC

LOAD

A

AC ← A

SUB

B

AC ← AC - B

DIV

Y

AC ← AC / Y

STOR

Y

← AC

 

Semakin sedikit alamat instruksi maka program semakin panjang, tampak pada contoh di atas dibutukan delapan baris set instruksi untuk menyeesaikan satu persoalan yang sama dengan dua contoh sebelumnya. Selanjutnya, persamaan Y = (A-B)/(C+D*E) dapat diselesaikan dengan menggunakan instruksi zero address seperti berikut.

 

Instruksi

Komentar

 

PUSH

A

PUSH

B

SUB

 

(stack yang bawah dkurangi dengan data pada stack atas)

PUSH

D

 

PUSH

E

 

MUL

 

 

PUSH

C

 

ADD

 

 

DIV

 

(stack yang bawah dibagi dengan data pada stack atas)

PJuOmPlaseisntYruksi dengan zeradd(rdeastsapdailsiinmgpbaannaytaakdibkaenludairnkgaknanpaddeanogpaenrasnatuY,)dua atau tiga alamat. Hal ang perlu diperhatikan ketika membat program dengan zero address instruction adalah bahwa data yang pertama di input mauk ke stack terlebih dahulu diikuti dengan instruksi-instruksi selanjutnya, sehingga ketika peletakan instruksi tidak pas akan mengakibatkan program tidak berjalan sebagaimana kebutuhan.

 

C.  Desain set instruksi

Fakta tentang sesain set instruksi ternyata masih dalam perselisihan. Masalah desain yang mendasari perselisihan tesebut meliputi operation repertoire yang menyangkut pembahasan tentang sejauh mana tingkat kerumitan sebuah instruksi, tipe data yang menyangkut pertanyaan apakah orang membutuhkan semua jenis data, format instruksi yang berkaitan dengan format jenis tetap atau variabel kemudian ukuran panjang instruksi serta jumlah operan yang teribat. Dua pembahasan yang menjadi perselisihan selanjutnya berkaitan dengan register dan pengalamatan. Pada register ukuran seerta tujuan pemanfaatanya masih diperdebatkan termasuk pada pengalamatan tentang berapa banyak pengalamatan yang dibutuhkan beserta mode pengalamatannya. Sementara itu hal lain yang perlu diperhatikan dalam desain instruksi adalah tipe-tipe operan yang terlibat pada sebuah set instruksi. Instruksi mesin bekerja pada data dengan kategori data yang paling penting adalah alamat, angka, karakter serta data logika. Angka yang ada pada set instruksi mesin bisa dalam bentuk integer,        fixed point atau floating point maupun desimal. Sedangkan karakter yang biasa digunakan         dalam pengolahan data bisa dalam bentuk karakter ASCII atau EBCDIC

tergantung mesinnya 


D.  Format dan Mode Pengalamatan

Instruksi dirancang untuk dapat merujuk ke berbagai lokasi di memori utama. Berbagai teknik pengalamatan telah digunakan untuk mencapai akses tersebut. Pertukaran antara rentang

alamat dan / atau kompleksitas perhitungan alamat sangat perlu diperhatikan. Jenis-jenis teknik pengalamatan instruksi meliputi pengalamatan segera, langsung, tidak langsung, daftar, daftar tidak langsung, perpindahan, tumpukan (stack). Sementara permasalahan yang ada terdiri atas flexibilty lokasi operan, trade off antara fleksibilitas lokasi dan kecepatan pemrosesan. Diagram untuk berbagai mode pengalamatan tampak pada gambar berikut.



Gambar 6.2. Metode akses memori secara immediate dan direct



Gambar 6.3. Metode akses memori secara indirect dan register direct

Gambar 6.4. Metode akses register secara indirect dan displacement

 

Contoh penulisan dari mode pengalamatan atau addressing mode adalah sebagai berikut.

·                   Immediate :           ADD #100      ; add 100 to Accum.

·                   Direct:                   ADD A           ; add content of addr. A to accumulator

·                   Indirect :                ADD @A        ; content of location A is address of operand. add

content

of loc. with that address to accum.


·                   Register Direct:     ADD R1         ; add content of R1 to accumulator


·  Reg. Indirect :       ADD (R1)       ; add content of mem. Location whose addr. 


Pengaksesa alama dengan  displaceims einntRm1 etoruapcack.a metod yang  "langka" namun  masih mungkin terjadi sebagaimana contoh ini. ADD 1050 (R1) dimana alamat dasar (asal) adalah berada di R1 dan displacement-nya adalah 1050. Dimana dalam instruksi dua alamat (two address instruction), akan terlihat seperti ADD 1050 (R1), R2 yang artinya tambahkan data di R2 dengan data yang alamat dasarnya ada di R1 dan displacement-nya 1050. Tiga displacement addressing yang umum meliputi pengalamatan relative (relative addressing), pengalamatan register dasar (base register addressing) serta pengindeksan (indexing). Pada pengalamatan relative, alamat operan merupakan jumlah alamat dalam instruksi ditambah isi dari program counter (PC). Pada pengalamatan register dasar, isi base-register ditambahkan ke alamat operan dalam instruksi. Sedangkan pada skema pengindeksan, bidang alamat instruksi ditambahkan ke isi register indeks untuk mendapatkan alamat memori yang tepat (dari operan). Tiga skema alamat tersebut membuat register untuk menunjuk ke beberapa segmen memori tertentu dan menggunakan alamat operan dalam instruksi sebagai displacement.

Komentar

Postingan populer dari blog ini

PANDUAN INSTALASI MIKROTIK DI VIRTUALBOX

The combination looping for and compilation education with Java Language's

JavaPoint networking port socket server to Client (mulitserver dan multiclient)