Pertemuan Ke-7 INSTRUCTION SET A. What is an instruction set? The complete collection of instructions that are understood by a CPU Machine Code Binary Usually represented by assembly codes B. Komponents of an Operation code (Op code) Do this Source Operand reference To this Result Operand reference Put the answer here Next Reference When you have done that, do this... C. Where have all the Operands gone? Main memory (or virtual memory/cache) CPU register I/Odevice Gambar 7.1 Cycle State Diagram Tri Daryanto, S.Kom, MT 48
D. Komponen-Komponen Central Processing Unit (CPU) Gambar 7.2 Komponen-komponen dari Struktur CPU Fungsi dari masing-masing komponen adalah sebagai berikut: 1. Control Unit (CU) berfungsi sebagai penegendali dari semua komponen yang terdapt oleh CPU, seperti penjadwalan kerja dan sinkronisai antar Komponen. 2. Register (IR) berfungsi sebagai penerjemah set instruksi apakah didalamnya merupakan sebuah instruksi atau hanya sebuah data. IR berfungsi juga untuk memberitahu prosedur proses kepada control unit untuk menyiapkan komponen-komponen yang dibutuh dalam pelaksanaan proses yang akan dilakukan. 3. Program Counter (PC) berrfungsi sebagai urutan pengambilan Instruski set yang terdapat dalam Main 4. Address Register (MAR) berfungsi sebagai komponen yang diperintahkan oleh IR dan control Unit untuk mencari alamat dalam sebuah Main 5. Buffer Register (MBR) berfungsi sebagai kompponen yang diperintahkan oleh IR dan CU untuk membaca dan menulis data pada Main. Tri Daryanto, S.Kom, MT 49
6. ALU (Arithmatic Logic Unit) adalah komponen atau bagian yang berfungsi melakukan proses logika maupun Aritmatika dalam hal ini penjumlahan dan pengurangan dari data yang sudah di ambil oleh MBR dari Main. 7. Register adalah komponen sebagai tempat penyimpanan memory sementara di dalam CPU, dimana masing-masing register memiliki pekerjaan penyimpanan data masing-masing. Salah satunya adalah Akumultaor yang merupakan Register yang paling di gunakan. E. Representation In machine code each instruction has a unique bit pattern For human consumption (programmers) a symbolic representation is used e.g. ADD, SUB, LOAD Operands can also be represented in this way ADD A,B LOAD ACC,B Gambar 7.3 Simple Format F. Format Instruksi Format instruksi dan format data perbedaannya hanya dapat dibedakan oleh register IR (instruction Register). Apabila data yang diambil dari memori tersebut adalah instruksi maka IR dapat melakukan operand fetch. Contoh coding instruksi set pada CPU 0001 = Load AC from 0010 = Store AC to 0101 = Add to AC from Contoh dari eksekusi program Panjang baris = 16 bit, dibagi 4 bit untuk op-code (24 jenis op-code) dan 12-bit address (212 lokasi memori). 1. Asumsikan PC (program counter) 300. isi dari lokasi 300 di ambil oleh IR 2. Empat bit pertama didalam IR mengindikasikan isi alamat yang ditunjuk IR, isi pada alamt tersebut di taruh di AC 3. PC menambah 1 bit instruksi Tri Daryanto, S.Kom, MT 50
4. Isi awal AC di tambahkan dengan alamat yang di tunjuk 5. PC menambahkan 1 bit instruksi 6. Isi pada AC di taruh pada alamat yang di tunjuk Proses alur eksekusi dapat dilihat pada alur eksekusi Hypotical Mechine yang terlihat pada Gambar 7.4 Gambar 7.4 Eksekusi dalam Hypothetical machine Contoh instruksi format menggunakan proses Mikroskopic Program Pada kasus eksekusi format instruksi dari memori ke memori. ADD A,B Tri Daryanto, S.Kom, MT 51
0 7 8 19 20 ADD A B Op-Code address of op-1 (12 bit) address of op-2 (12 bit) Langkah instruksi, Microscopic view Menganalisa eksekusi ADD A,B. Instruksi Fecth : MAR [PC] Read (fetch instruksi, wait) IR [MBR]. Operand Fetch : MAR [Addr-op-1-IR] Read (operand-1, wait) ALU1 MAR [MBR] [Addr-op-2-IR] Read (operand-2, wait) ALU2 [MBR].Arithmetic ADD MAR MBR [Addr-op-1-IR] [ALU3] Write G. Tipe-Tipe Instruksi Data processing Data storage (main memory) Data movement (I/O) Program flow control Tri Daryanto, S.Kom, MT 52
H. Number of Addresses 3 addresses Operand 1, Operand 2, Result a = b + c; May be a forth - next instruction (usually implicit) Not common Needs very long words to hold everything 2 addresses One address doubles as operand and result a = a + b Reduces length of instruction Requires some extra work Temporary storage to hold some results 1 address Implicit second address Usually a register (accumulator) Common on early machines 0 (zero) addresses All addresses implicit Uses a stack e.g. push a push b add pop c c = a + b I. Tehnik pengalamatan Tehnik-tehnik pengalamatan yang ada adalah: Immediate, direct, indirect, register, register indirect, displacement, stack Tri Daryanto, S.Kom, MT 53
Operand A (a) LDA #100 Operan (b) Direct LDA A A R Registers R (address) Operan R location (d) Register MOV R1 R Op-code Ri Ri A Registers R1 Registers R1 Ri (address) Operand Ri (base addr.) Operand Rn Rn (e) Register Indirect LDA (R1) (f) Displacement LDA 100(R1) Tri Daryanto, S.Kom, MT 54
Implicit Top of Stack Stack addressing (g) Stack Beberapa Contoh Mode pengalamatan 1. Immediate : ADD #100; add 100 to Accum. 2. Direct: ADD A; add content of addr. A to accumulator 3. Indirect :ADD @A; content of location A is address of operand add content of loc. with that address to accum. 4. Register Direct: ADD R1; add content of R1 to accumulator 5. Reg. Indirect :ADD (R1); add content of mem.location whose addr.is in R1 to acc. 6. Alamat dengan displacement adalah rare, contoh yang diperlihatkan adalah sebagai berikut : ADD 1050(R1) dimana isi alamat yang ditunjuk oleh R1 ditambahkan dengan alamat 1050 7. Didadalam dua alamat instruksi contohnya adalah sebagai berikut : ADD 1050(R1), R2 dimana alat dasar berada pad R1 dan di jumlahkan dengan alamat 1050 Latihan: 1. Buat Microspic View Program untuk script instruksi assembler berikut ini: a. DIV A,B b. Store A c. MOV R1, R2 Tri Daryanto, S.Kom, MT 55