Set Instruksi 1 Set instruksi z Kumpulan instruksi

  • Slides: 28
Download presentation
Set Instruksi: 1

Set Instruksi: 1

Set instruksi ? z Kumpulan instruksi lengkap yang dimengerti oleh CPU z Operasi dari

Set instruksi ? z Kumpulan instruksi lengkap yang dimengerti oleh CPU z Operasi dari CPU ditentukan oleh instruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (machine instructions) atau instruksi komputer (computer instructions). 2

Elemen Instruksi z Operation code (Op code) y Kerjakan, menentukan operasi yang akan dilaksanakan

Elemen Instruksi z Operation code (Op code) y Kerjakan, menentukan operasi yang akan dilaksanakan z Source Operand reference y Dengan data ini, merupakan input bagi operasi yang akan dilaksanakan z Result Operand reference y Simpan hasilnya kesini, merupakan hasil dari operasi yang dilaksanakan z Next Instruction Reference y Setelah selesai, kerjakan ini. . . , memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai. 3

Operands ? z Main memory (or virtual memory or cache) z CPU register z

Operands ? z Main memory (or virtual memory or cache) z CPU register z I/O device 4

Penyajian Instruksi z Dlm kode mesin setiap instruksi memiliki pola-bit tertentu z Untuk konsumsi

Penyajian Instruksi z Dlm kode mesin setiap instruksi memiliki pola-bit tertentu z Untuk konsumsi programmers disediakan penyajian simbolik y. Contoh: ADD, SUB, LOAD z Operand juga disajikan secara simbolik y. Contoh: ADD A, B 5

Jenis Instruksi z Data processing, Arithmetic dan Logic Instructions z Data storage (main memory),

Jenis Instruksi z Data processing, Arithmetic dan Logic Instructions z Data storage (main memory), Memory instructions z Data movement (I/O), I/O instructions z Program flow control, Test and branch instructions 6

Jumlah addres (a) z 3 addres y. Operand 1, Operand 2, Result y. Contoh:

Jumlah addres (a) z 3 addres y. Operand 1, Operand 2, Result y. Contoh: ADD A, B, C ya = b + c; y. Jarang digunakan y. Perlu word yang panjang 7

Jumlah addres (b) z 2 addres y. Salah satu sebagai operand dan result y.

Jumlah addres (b) z 2 addres y. Salah satu sebagai operand dan result y. Contoh: ADD A, B ya = a + b y. Instruksi lebih pendek y. Diperlukan kerja ekstra x. Temporary storage untuk menyimpan beberapa hasil operasi 8

Jumlah addres (c) z 1 addres y. Addres kedua Implicit y. Biasanya register (accumulator)

Jumlah addres (c) z 1 addres y. Addres kedua Implicit y. Biasanya register (accumulator) 9

Jumlah addres (d) z 0 (zero) addres ysemua addres implicit ymenggunakan stack y. Contoh:

Jumlah addres (d) z 0 (zero) addres ysemua addres implicit ymenggunakan stack y. Contoh: y push a y push b y add y pop c y. Berarti: yc = a + b 10

Addres banyak ? Sedikit ? z Addres banyak y. Instruksi semakin kompleks yperlu register

Addres banyak ? Sedikit ? z Addres banyak y. Instruksi semakin kompleks yperlu register banyak y. Program lebih pendek y. Lebih cepat ? z Addres sedikit y. Instruksi lebih sederhana y. Eksekusi lebih cepat 11

Pertimbangan Perancangan (1) z Operation y. Berapa banyak operand? y. Apa saja operasi yang

Pertimbangan Perancangan (1) z Operation y. Berapa banyak operand? y. Apa saja operasi yang dikerjakan? y. Seberapa komplekx? z Jenis data z Format instruksi y. Panjang opcode y. Jumlah addres 12

Pertimbangan Perancangan (2) z Register y. Jumlah register yang tersedia dlm CPU y. Operasi

Pertimbangan Perancangan (2) z Register y. Jumlah register yang tersedia dlm CPU y. Operasi apa yg dpt dikerjakan oleh masing-masing registers? z Addressing modes (…) 13

Jenis Operand z Addres z Number y. Integer/floating point z Character y. ASCII etc.

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

Jenis Operasi z Data Transfer z Arithmetic z Logical z Conversion z I/O z

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

Data Transfer z menentukan y Source, Destination lokasi operand sumber dan operand tujuan. Menetapkan

Data Transfer z menentukan y Source, Destination lokasi operand sumber dan operand tujuan. Menetapkan Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack. y Jumlah data panjang data yang dipindahkan. y Menetapkan mode pengalamatan. z Tindakan CPU untuk melakukan transfer data adalah : a. Memindahkan data dari satu lokasi ke lokasi lain. b. Apabila memori dilibatkan : Menetapkan alamat memori. Menjalankan transformasi alamat memori virtual ke alamat memori aktual. Mengawali pembacaan / penulisan memori 16

Data Transfer Operasi set instruksi untuk transfer data : z MOVE : memindahkan word

Data Transfer Operasi set instruksi untuk transfer data : z MOVE : memindahkan word atau blok dari sumber ke tujuan z STORE : memindahkan word dari prosesor ke memori. z LOAD : memindahkan word dari memori ke prosesor. z EXCHANGE : menukar isi sumber ke tujuan. z CLEAR / RESET : memindahkan word 0 ke tujuan. z SET : memindahkan word 1 ke tujuan. z PUSH : memindahkan word dari sumber ke bagian paling atas stack. z POP : memindahkan word dari bagian paling atas sumber 17

Arithmetic z Add, Subtract, Multiply, Divide z Signed Integer z Tindakan CPU untuk melakukan

Arithmetic z Add, Subtract, Multiply, Divide z Signed Integer z Tindakan CPU untuk melakukan operasi arithmetic : 1. Transfer data sebelum atau sesudah. 2. Melakukan fungsi dalam ALU. 3. Menset kode-kode kondisi dan flag. z 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. 18

Logical z Bitwise operations z AND, OR, NOT z Operasi set instruksi untuk operasi

Logical z Bitwise operations z AND, OR, NOT z 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. 19

Conversion z Contoh: Biner ke Decimal z Operasi set instruksi untuk conversi : 1.

Conversion z Contoh: Biner ke Decimal z 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. 20

Input/Output z z Tersedia instruksi khusus Atau digunakan instruksi data movement (memory mapped) Atau

Input/Output z z Tersedia instruksi khusus Atau digunakan instruksi data movement (memory mapped) Atau dikerjakan oleh controller (DMA) 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 21

Systems Control z Privileged instructions z CPU harus berada pada state tertentu y Ring

Systems Control z Privileged instructions z CPU harus berada pada state tertentu y Ring 0 pada 80386+ y Kernel mode z Digunakan oleh operating systems z 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. z Contoh : membaca atau mengubah register kontrol. 22

Transfer Control z Tindakan CPU untuk transfer control : Mengupdate program counter untuk subrutin

Transfer Control z Tindakan CPU untuk transfer control : Mengupdate program counter untuk subrutin , call / return. z Operasi set instruksi untuk transfer control : 1. JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu. 2. JUMP BERSYARAT : menguji persyaratan tertentu danmemuat 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 instruksi 23

Transfer Control 6. SKIP : menambah PC sehingga melompati instruksi berikutnya. 7. SKIP BERSYARAT

Transfer Control 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. 24

Transfer Control z Branch y. Contoh: branch to x if result is zero z

Transfer Control z Branch y. Contoh: branch to x if result is zero z Skip y. Contoh: increment and skip if zero y. ISZ Register 1 y. Branch xxxx y. ADD A z Subroutine call y interrupt call 25

ADDRESSING MODES Jenis-jenis addressing modes (Teknik Pengalama-tan) yang paling umum: z Immediate z Direct

ADDRESSING MODES Jenis-jenis addressing modes (Teknik Pengalama-tan) yang paling umum: z Immediate z Direct z Indirect z Register Indirect z Displacement z Stack 26

Tabel Basic Addressing Modes Mode Algorithm Principal Advantage Principal Disadvantage Immediate Operand = A

Tabel Basic Addressing Modes Mode Algorithm Principal Advantage Principal Disadvantage Immediate Operand = A No memory reference Limited operand magnitude Direct EA = A Simple Limited address space Indirect EA = (A) Large address space Multiple memory references Register EA = R No memory Reference Limited address space Register Indirect EA = (R) Large address space Extra memory reference Displace-ment EA=A+(R) flexibility Complexity Stack EA=top of Stack No memory Reference Limited applicability 27

Gambar Addressing Mode 28

Gambar Addressing Mode 28