Jumat, 29 Mei 2015

KARAKTERISTIK SET INSTRUKSI

A.    Karakterisktik Set Intruksi
A.1       Element-element Instruksi
Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU. Informasi itu dituangkan dalam elcmen-elemen instruksi:
1.      Operation Code/Kode Operasi: menspesifikasikan operasi yang akan dilakukan (misalnya, ADD).  Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi, atau opcode.
2.      Source Operand Reference/Referensi Operand Sumber: operasi dapat mencakup satu atau lebih sumber, operand merupakan input bagi operasi.
3.      Result Operand Reference/Reference Operand Hasil: operasi dapat membuat hasil operasi.
4.      Next Instruction Reference/Reference Operand Selanjutnya: elemen ini memberitahu CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi.
Sumber dan hasil operand dapat berada di salah satu dari ketiga daerah di bawah ini:
1.      Memori utama atau memori virtual: dengan referensi alamat berikutnya, maka alamat memori utama atau virtual harus diketahui.
2.      CPU: instruksi harus diberi nomor register yang dimaksud.
3.      Perangkal I/O: instruksi harus menspesifikasikan modul I/O yang diperlukan oleh operasi.







A.2       Jenis-jenis Instruksi
1.        Data Processing/Pengolahan Data: instruksi-instruksi aritmetika dan logika.
2.        Data Movement/Perpindahan Data: instruksi I/O.
3.        Data Storage/Penyimpanan Data: instruksi-instruksi memori.
4.        Flow Control/Kontrol: instruksi pemeriksaan dan percabangan.

                                            A.2.1           Pengolahan data (data processing)
Meliputi operasi-operasi aritmatika dan logika. Operasi aritmatika 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.
                                            A.2.2           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.
                                            A.2.3           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.

                                            A.2.4           Kontrol aliran program (program flow control)
Berisi instruksi pengontrolan operasi dan percabangan. Instruksi ini berfungsi untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.

A.3       TIPE-TIPE OPERAND
A.3.1      Addresses
Jenis Pengalamatan (Addressing Mode): Merupakan cara memberikan perintah transfer/pemindahan data dari lokasi satu ke lokasi lainnya.
Jenis Mode Pengalamatan :
1.      Mode pengalamatan segera:
Yaitu mode pengalamatan yang digunakan untuk mengisi suatu register dengan data.
ü  Register yang dapat diisi data dengan mode pengalamatan segera adalah : AX, BX, CX, DX, AL, AH, BL, BH, CL, CH, DL, DH, BP, SP, SI, DI
ü  Register segmen tidak dapat diisi dengan mode pengalamatan segera.
ü  Alamat memori juga tidak dapat diisi secara immediate.
2.      Mode pengalamatan register :
Yaitu mode pengalamatan yang digunakan untuk mentransfer data (byte/word) dari register sumber ke register tujuan.
ü  MOV CS, DS tidak diijinkan karena segment to segment
ü  MOV BL, BX Tidak dijinkan karena berbeda ukuran (mixed size)
Contoh :
Susun perintah untuk mengisi register segmen DS dengan data 1234 heksadesimal!
Jawab:
MOV AX, 1234   immediate addressing
MOV DS, AX   register addressing

3.      Mode pengalamatan langsung
Yaitu mode pengalamatan untuk mentransfer data antar memori dan register
Contoh bentuk 1 :
Susun instruksi assembly untuk memindahkan isi alamat 10120 heksadesimal ke register AL, isi alamat 10150 heksadesimal ke register BL, dan isi alamat 10160 heksadesimal ke register CL! Anggap segment base 1000 tersimpan pada register DS!
Jawab:
MOV AX, 1000   immediate addressing
MOV DS, AX    register addressing
MOV AL, [0120]   direct addressing
MOV BL, [0150]   direct addressing
MOV CL, [0160]   direct addressing
Contoh bentuk 2 :
Susun instruksi untuk mengisi alamat 10120 dengan data 5 heksadesimal! Anggap segment base yang digunakan adalah 1000 tersimpan dalam DS!
Jawab:
MOV AX,1000   immediate addressing
MOV DS, AX   register addressing
MOV AL, 5    immediate addressing
MOV [0120], AL   direct addressing


4.      Mode pengalamatan tak langsung
Merupakan mode pengalamatan untuk mentransfer DATA/byte/word antar register dan lokasi yang alamatnya ditunjukkan oleh isi suatu register.

5.      Base plus index addressing
Yaitu mode pengalamatan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh jumlah register base dan index.
Bentuk 1 :   MOV [BX + SI], AX
Bentuk 2 :   MOV AX, [BX+SI]
6.      Register relative addressing
Yaitu mode pengalamatan untuk tranfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh isi suatu register dan jaraknya (displacement).
Bentuk :  MOV [BX + 4], AX
7.      Base relative plus index addressing
Merupakan mode pengalamatan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh suatu register base dan register index ditambah displacementnya
Bentuk :  MOV AX, [BX + DI + 4]
A.3.2      Numbers
1.        Integer or fixed point : sebuah integer yang skala dengan faktor tertentu. Penting untuk dicatat bahwa faktor skala ditentukan oleh jenis, itu adalah sama untuk semua nilai dari jenis fixed-titik tertentu.
2.        Floating point                  : sebuah bilangan yang digunakan untuk menggambarkan sebuah nilai yang sangat besar atau sangat kecil
3.        Decimal (BCD)                : sistem pengkodean bilangan desimal yang metodenya mirip dengan bilangan biner biasa; hanya saja dalam proses konversi, setiap simbol dari bilangan desimal dikonversi satu per satu, bukan secara keseluruhan seperti konversi bilangan desimal ke biner biasa.)
A.3.3      Characters
1.         ASCII (American Standard Code for Information Interchange) : suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks.
2.         EBCDIC (Extended Binary Coded Decimal Interchange Code)  : kode 8 bit untuk huruf yang dipakai pada sistem operasi komputer merk IBM, seperti z/OS, OS/390, VM, VSE, OS/400, serta i5/OS

A.3.4      Logical Data
Bila data berbentuk binary: 0 dan 1


A.4       TIPE-TIPE OPERASI
                                                A.4.1          TRANSFER DATA
a)      Menetapkan lokasi operand sumber dan operand tujuan.
Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
b)      Menetapkan panjang data yang dipindahkan.
c)      Menetapkan mode pengalamatan.
Tindakan CPU untuk melakukan transfer data adalah :
1.      Memindahkan data dari satu lokasi ke lokasi lain.
2.      Apabila memori dilibatkan :
ü  Menetapkan alamat memori.
ü  Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
ü  Mengawali pembacaan / penulisan memori
3.   Operasi set instruksi untuk transfer data :
ü MOVE : memindahkan word atau blok dari sumber ke tujuan
ü STORE : memindahkan word dari prosesor ke memori.
ü LOAD : memindahkan word dari memori ke prosesor.
ü EXCHANGE : menukar isi sumber ke tujuan.
ü CLEAR / RESET : memindahkan word 0 ke tujuan.
ü SET : memindahkan word 1 ke tujuan.
ü PUSH : memindahkan word dari sumber ke bagian paling atas stack.
ü POP : memindahkan word dari bagian paling atas sumber


                                                A.4.2          ARITHMETIC
Tindakan CPU untuk melakukan operasi arithmetic :
1.    Transfer data sebelum atau sesudah.
2.    Melakukan fungsi dalam ALU.
3.    Menset kode-kode kondisi dan flag.
Operasi set instruksi untuk arithmetic :
1.      ADD : penjumlahan                                  5. ABSOLUTE
2.      SUBTRACT : pengurangan                      6. NEGATIVE
3.      MULTIPLY : perkalian                            7. DECREMENT
4.      DIVIDE : pembagian                               8. INCREMENT
Nomor 5 sampai 8 merupakan instruksi operand tunggal.
Tindakan CPU sama dengan arithmetic

                                                A.4.3          LOGICAL
Operasi set instruksi untuk operasi logical :
1.      AND, OR, NOT, EXOR
2.      COMPARE       : melakukan perbandingan logika.
3.      TEST                  : menguji kondisi tertentu.
4.      SHIFT                : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
5.      ROTATE           : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.

                                                A.4.4          CONVERSI
Tindakan CPU sama dengan arithmetic dan logical.
Instruksi yang mengubah format instruksi yang beroperasi terhadap format data. Misalnya pengubahan bilangan desimal menjadi bilangan biner.
Operasi set instruksi untuk conversi :
1.      TRANSLATE  : menterjemahkan nilai-nilai dalam suatu bagian memori berdasarkan tabel   korespodensi.
2.      CONVERT       : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
                                                A.4.5          INPUT / OUTPUT
Tindakan CPU untuk melakukan INPUT /OUTPUT :
1.      Apabila  memory mapped I/O maka menentukan alamat memory mapped.
2.      Mengawali perintah ke modul I/O
Operasi set instruksi Input / Ouput :
1.INPUT               : memindahkan data dari pernagkat I/O tertentu ke tujuan
2.OUTPUT           : memindahkan data dari sumber tertentu ke perangkat I/O
3.START I/O        : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
4.TEST I/O           : memindahkan informasi dari sistem I/O ke tujuan
                                                A.4.6          TRANFER CONTROL
Tindakan CPU untuk transfer control :
Mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :
a.         JUMP (cabang)                        : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
b.      JUMP BERSYARAT   : menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
c.       JUMP SUBRUTIN       : melompat ke  alamat tertentu.
d.      RETURN                       : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
e.       EXECUTE                   : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruk
f.       SKIP       : menambah PC sehingga melompati instruksi berikutnya.
g.      SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
h.      HALT                             : menghentikan eksekusi program.
i.        WAIT (HOLD)             : melanjutkan eksekusi pada saat persyaratan dipenuhi.
j.        NO OPERATION         : tidak ada operasi yang dilakukan
                                                A.4.7          CONTROL SYSTEM
Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi.Contoh : membaca atau mengubah register kontrol.
Tindakan CPU untuk transfer control :
Mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :
1.      JUMP (cabang)             : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
2.      JUMP BERSYARAT   : menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
3.      JUMP SUBRUTIN       : melompat ke  alamat tertentu.
4.      RETURN                       : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
5.      EXECUTE                   : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruk
6.      SKIP       : menambah PC sehingga melompati instruksi berikutnya.
7.      SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
8.      HALT                             : menghentikan eksekusi program.
9.      WAIT (HOLD)             : melanjutkan eksekusi pada saat persyaratan dipenuhi.
10.  NO OPERATION         : tidak ada operasi yang dilakukan
A.5         Intruksi Percabangan.
BRE RI, R2, X; becabang ke x bila isi RI = R2

Instruksi percabangan bersyarat melakukan operasi
loncat (jump) bila beberapa syarat tertentu terpenuhi. Syarat‑syarat ini tergantung dari data pada flag register. Fungsi ini menyebabkan sebuah mikrokomputer mampu menanggapi berbagai syarat yang datangnya dari luar.Hal ini juga merupakan sebuah alat yang mutlak perlu dalam merancang program loop. Arti dari Instruksi-instruksi di bawah ini tertulis di sebelah kanannya:
1.    CP1OH                  : Membandingkan accumulator dengan 10 H dan mengeset flag yang sesuai.
2.    JP Z,1828H            : Jika zero flag dalam keadaan set, yaitu A = 10 H, loncat ke address 1828 H dan lanjutkan pelaksanaan program.
3.    JP C,245AH          : Jika carry flag dalam keadaan set, yaitu A<10 H, loncat ke 245A H untuk melaksanakan program lain.
4.    ADD   A,B            : Sebaliknya, yaitu jika A>10 H, lanjutkan pelaksanaan program.
Syarat‑syarat untuk instruksi percabangan bersyarat ditulis setelah JP:
1.    JP C,XXXX          : Jika ada carry, atau carry flag = 1, loncat ke XXXX.
2.    JP NC,XXXX       : Jika tidak ada carry, atau carry flag 0, loncat ke XXXX.
3.    JP Z,XXXX           : Jika zero flag = 1, atau hasil dari operasi yang terdahulu dalah nol, loncat ke XXXX.
4.    JP NZ,XXXX        : Jika zero flag = 0. loncat ke XXXX.
5.    JP  PE,XXXX       : Jika parity flag = I (genap), atau jika teriadi overflow dalam operasi arithmetik sebelumnya, loncat ke XXXX.
6.    JP PO,XXXX        : Jika flag P/V = 0 (parity ganjil atau tidak ada overflow), loncat ke XXXX.
7.    JP P,XXXX           : Jika sign flag = 0 (tanda dari hasil operasi yang terdahulu adalah positif), loncat ke XXXX.
8.    JP M,XXXX          : Jika flag sign = I (negatif), Ion‑cat ke XXXX.


Tidak ada komentar:

Posting Komentar