William Stallings Computer Organization and Architecture Set Instruksi: Karakteristik dan Fungsi
Set instruksi ? Kumpulan instruksi lengkap yang dimengerti oleh CPU Kode mesin Biner Kode assembly 2
Elemen Instruksi Operation code (Op code) Source Operand reference Kerjakan cth: ADD, SUB, MOV Source Operand reference Dengan data ini : ADD 5 Tambahkan 5 ke isi accumulator Result Operand reference Simpan hasilnya kesini ADD A, B Tambahkan A dg B, simpan hasilnya di A Next Instruction Reference Setelah selesai, kerjakan ini ... 3
Operands ? Main memory (or virtual memory or cache) CPU register ADD 9, 5 Tambahkan isi di alamat 9 dengan isi di alamat 5 9 dan 5 adalah alamat, bukan bilangan CPU register MOV 5, AX Pindah angka 5 ke register AX I/O device MOV A, I/O 4
Penyajian Instruksi Dlm kode mesin setiap instruksi memiliki pola-bit tertentu Untuk konsumsi programmers disediakan penyajian simbolik Low level language : Assembler High level language: C++, Pascal, Java Operand juga disajikan secara simbolik ADD, SUB (111000) 5
Jenis Instruksi Data processing : ARITMATIK ADD, DIV Data storage (main memory) STORE 7, DX Data movement (I/O) MOV A, I/O Program flow control JUMP : JUMP TO 295 BRANCH : BRP, BRN 6
Jumlah addres (a) 3 addres Operand 1, Operand 2, Result Contoh: ADD A,B,C a = b + c; Jarang digunakan Perlu word yang panjang 7
Jumlah addres (b) 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 8
Jumlah addres (c) 1 addres Addres kedua Implicit Biasanya register (accumulator) LOAD D Isi accumulator dg nilai D 9
Jumlah addres (d) 0 (zero) addres semua addres implicit menggunakan stack Contoh: push a push b add pop c Berarti: c = a + b 10
Contoh program
Addres banyak ? Sedikit ? Addres banyak Addres sedikit Instruksi semakin kompleks perlu register banyak Program lebih pendek Lebih cepat ? Addres sedikit Instruksi lebih sederhana Eksekusi lebih cepat 11
Jenis Operand Addres ADD Y, X Number Character Logical Data OR, AND Integer/floating point DIV 5,2 Character ASCII etc. Logical Data OR, AND Bits or flags (Apa ada bedanya antara number dg character?) 14
Jenis Operasi Data Transfer (pindah data dr memori ke I/O) Arithmetic (ADD, SUB) Logical Conversion I/O Transfer of Control 18
Data Transfer menentukan Source Destination Jumlah data MOV A, B 19
Jenis operasi data transfer
Arithmetic Add, Subtract, Multiply, Divide Signed Integer Floating point ? Termasuk operasi: Increment (a++) Decrement (a--) Negate (-a) 20
Jenis operasi Aritmatika
Logical AND, OR, NOT 21
Conversion Contoh: Biner ke Decimal TRANSLATE CONVERT 22
Input/Output digunakan instruksi data movement (memory mapped programmed I/O) Atau dikerjakan oleh controller (DMA) Direct memory access INPUT, OUPUT, START, TEST 23
Transfer of Control Branch Skip Subroutine call Contoh: branch to 201 if result is zero Skip Contoh: increment and skip if zero ISZ Register1 Branch xxxx ADD A Subroutine call interrupt call 25
Jenis operasi transfer of Control