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
• 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
• 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.
• 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.
• 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
• 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.
• 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
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.