Set Instruksi



Set Intruksi : Karakteristik dan Fungsi
Set Instruksi didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).

Set Instruksi
  • Set Instruksi :
  • Kumpulan instruksi lengkap yang dimengerti oleh CPU
  • Kode mesin, Biner, dan Kode Assembly

-Untuk dapat dieksekusi CPU, suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas.
-Elemen – elemennya:
  • Operation code (Op code)
menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
Contoh : Kerjakan
  • Source Operand reference
operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.
Contoh : Dengan data ini
  • Result Operand reference
Merupakan hasil atau keluaran operasi.
Contoh : Simpan hasilnya kesini
  • Next Instruction Reference
elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekus
Contoh : Setelah selesai, kerjakan ini ...

OPERASI-OPERASI SET INSTRUKSI

a.     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 bgian paling atas sumber
b.    Operasi set instruksi untuk arithmetic :
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal
c.     Operasi set instruksi untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
d.    Operasi set instruksi untuk conversi :
• TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.
• CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
e.    Operasi set instruksi Input / Ouput :
• INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
• OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
• START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
• TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
f.      Operasi set instruksi untuk transfer control :
• JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
• JUMP BERSYARAT : menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
• JUMP SUBRUTIN : melompat ke alamat tertentu.
• RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
• EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi.
• SKIP : menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan.
• HALT : menghentikan eksekusi program.
• WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : tidak ada operasi yang dilakukan.
g.    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
Jenis Instruksi

  • Data processing
  • Data storage (main memory)
  • Data movement (I/O)
  • Program flow control

Jumlah Addres (a)
  • 3 addres
    • Operand 1, Operand 2, Result
    • Contoh: ADD A,B,C
    • a = b + c;
    • Jarang digunakan dan perlu word yang panjang.
  • 2 addres
    • Salah satu sebagai operand dan result
    • Contoh: ADD A,B
    • a = a + b
    • Instruksi lebih pendek
    • Diperlukan kerja ekstra
      • Temporary storage untuk menyimpan beberapa hasil operasi

Jumlah Addres (b)
  • 1 addres
    • Addres kedua Implicit 
    • Biasanya register (accumulator)
    • 0 (zero) addres
    • semua addres implicit
    • menggunakan stack
    • Contoh:
push a
push b
Add
pop c
  • Berarti: c = a + b

Addres Banyak dan Sedikit
  • Addres banyak
    • Instruksi semakin kompleks
    • perlu register banyak
    • Program lebih pendek
    • Lebih cepat ?
    • Addres sedikit
    • Instruksi lebih sederhana
    • Eksekusi lebih cepat

Pertimbangan Perancangan
  • Operation
    • Berapa banyak operand? Apa saja operasi yang dikerjakan? Seberapa komplekx?
  • Jenis data
  • Format instruksi
    • Panjang opcode
    • Jumlah addres
  • Register
    • Jumlah  register yang tersedia dlm CPU
    • Operasi apa yg dpt dikerjakan oleh masing-masing registers?
  • Addressing modes (…)
  • RISC v CISC

Jenis Operand
  • Addres
  • Number
    • Integer/floating point
  • Character
    • ASCII etc.
  • Logical Data
    • Bits or flags
    • (Apa ada bedanya antara number dengan character?)

Tipe Data Pentium
  • 8 bit Byte
  • 16 bit word
  • 32 bit double word
  • 64 bit quad word
  • Addressing menggunakan  8 bit unit
  • 32 bit double word dibaca pada addres yg habis dibagi dg 4

Tipe Data Spesifik
  • General – sembarang isi biner
  • Integer - single binary value
  • Ordinal - unsigned integer
  • Unpacked BCD - One digit per byte
  • Packed BCD - 2 BCD digits per byte
  • Near Pointer - 32 bit offset within segment
  • Bit field
  • Byte String
  • Floating Point

Jenis Operasi
  • Data Transfer
  • Arithmetic
  • Logical
  • Conversion
  • I/O
  • System Control
  • Transfer of Control

Data Transfer
  • Menentukan :
    • Source
    • Destination
    • Jumlah data
    • Beda instruksi untuk setiap data movement yang beda.
    • pada IBM 370
    • Atau satu instruction dengan addres yg beda.
    • pada VAX

Arithmetic
  • Add, Subtract, Multiply, Divide
  • Signed Integer
  • Floating point ?
  • Termasuk operasi:
    • Increment (a++)
    • Decrement (a--)
    • Negate (-a)

Logical dan Konversi
  • Logika :
  • Bitwise operations
  • AND, OR, NOT
  • Konversi
  • Contoh: Biner ke Decimal

Input Output
  • Tersedia instruksi khusus.
  • Atau digunakan instruksi  data movement (memory mapped).
  • Atau dikerjakan oleh controller (DMA).

System Control dan Transfer of Control
  • System Control :
  • Privileged instructions
  • CPU harus berada pada state tertentu
    • Ring 0 pada 80386+ Kernel mode
  • Digunakan oleh operating systems
  • Transfer of Control :
  • Branch , contoh: branch to x if result is zero
  • Skip, contoh: increment and skip if zero
    • ISZ Register1
    • Branch xxxx
    • ADD A
  • Subroutine call
    • interrupt call

Byte Order
  • Bagaiamana urutan bilangan yang lebih dari 1 byte disimpan/dibaca, contoh (dalam  hex).
  • Bilangan 12345678 dapat disimpan pada lokasi 4x8 bit.
  • Contoh :
Address                        Value (1)                     Value(2)
184                                 12                                78
185                                 34                                56
186                                 56                                34
186                                 78                                12
  • top down atau  bottom up?

Penamaan Byte Order
  • Problem ordering dinamakan Endian
  • LSB pada posisi paling kiri (pada addres terkecil)
  • Dinamakan  big-endian
  • LSB pada posisi paling kanan (pada addres terbesar)
  • Dinamakan little-endian

Standard
  • Pentium (80x86), VAX adalah  little-endian
  • IBM 370, Motorola 680x0 (Mac), dan  RISC yang lain, adalah   big-endian
  • Internet menggunakan big-endian
    • Membuat program untuk Internet pada PC lebih susah.
    • WinSock menyediakan htoi (Host to Internet) dan  itoh (Internet to Host) untuk keperluan konversi

Sumber :
-          Power Point By Serdiwansyah N. A.