730 likes | 1.74k Views
Pertemuan IV. SET Instruksi. Apa set instruksi itu ?. Set instruksi (instruction set ): sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU Disebut juga machine code ( bahasa mesin ), aslinya juga berbentuk biner bahasa assembly
E N D
Pertemuan IV SET Instruksi
Apa set instruksiitu? • Set instruksi (instruction set): sekumpulanlengkapinstruksiyang dapatdimengertiolehsebuah CPU • Disebutjuga machine code (bahasamesin), aslinyajugaberbentukbinerbahasaassembly • Untukkonsumsimanusia (programmer), biasanyadigunakanrepresentasi yang lebihmudahdimengertibahasa yang dapatdimengertimanusia
Elemen-elemenInstruksi • Operation code (Op code) • Kerjakanini • Source Operand reference • Terhadapisialamatini • Result Operand reference • Letakkanhasilnyadialamatini • Next Instruction Reference • Kalausudahselesai, selanjutnyakerjakanalamatini Dalamsebuahinstruksi, tidakharussemuaelemeninidicantumkan, tergantungkebutuhandanjenisinstruksinya
Kemana operand disimpan? • Ingat: SemuainstruksidijalankandalamCPU • Rata-rata operasihanyamembutuhkan register sebagaitempatmembaca / menyimpan operand • Adakalanyajuga register tidakberisi operand tapimenunjukketempatpenyimpananlainnya(memory, cache, modulI/O
RepresentasiInstruksi • Padabahasamesin, setiapinstruksiberbentukpola bit biner yang unik • Agar dapatdimengertimanusia, dibuatlahrepresentasisimbolikinstruksi, biasanyaberupasingkatan (disebut mnemonic) • misalADD, SUB, LOAD • Sedangkanalamat operand direpresentasikansebagaiberikut: • ADD A,B • Adabeberapajenisrepresentasiinstruksi, tergantungdarijumlahalamat operand yang bisadiolaholehsatuinstruksi
Format Instruksi (Biner) • MisalInstruksidengan 2 Alamat Operand: • ADD A, B A & B suatualamatregister
ContohSimbolikInstruksi • ADD: Add (Jumlahkan) • SUB: Subtract (Kurangkan) • MPY/MUL: Multiply (Kalikan) • DIV: Divide (Bagi) • LOAD: Load data dari register/memory • STOR: Simpan data ke register/memory • MOVE: pindahkan data darisatutempatke • tempat lain • SHR: shift kanan data • SHL: shift kiri data
CakupanJenisInstruksi • Data processing: Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb); konversidata • Data storage (memory): Transfer data (STOR, LOAD, MOVE, dsb) • Data movement: Input dan Output kemodulI/O • Program flow control: JUMP, HALT, dsb.
Format Instruksi 3 Alamat • Bentukumum: [OPCODE] [AH], [AO1], [AO2] • Satualamathasil, duaalamat operand • Misal: SUB Y, A, B - Bentukalgoritmik: Y A – B - Arti: KurangkanisiReg A denganisiRegB, kemudiansimpanhasilnyadiReg Y. • Bentukinitidakumumdigunakandikomputer • Mengoperasikanbanyak register sekaligus • Program lebihpendek
Format Instruksi 2 Alamat • Bentukumum: [OPCODE] [AH], [AO] • Satualamathasilmerangkap operand, satualamatoperand • Misal: SUB Y, B - Bentukalgoritmik: Y Y – B - Arti: KurangkanisiReg Y denganisiReg B, kemudiansimpanhasilnyadiReg Y. • Bentukinimasihdigunakandikomputersekarang • Mengoperasikanlebihsedikit register, tapipanjangprogram tidakbertambahterlalubanyak
Format Instruksi 1 Alamat • Bentukumum: [OPCODE] [AO] • Satualamat operand, hasildisimpandi accumulator • Misal: SUB B - Bentukalgoritmik: AC AC – B - Arti: Kurangkanisi Acc. denganisiReg B, kemudiansimpanhasilnyadi Acc. • Bentukinidigunakandikomputerjamandahulu • Hanyamengoperasikansatu register, tapiprogram menjadibertambahpanjang
Format Instruksi 0 Alamat • Bentukumum: [OPCODE] [O] • Semuaalamat operand implisit, disimpandalambentuk stack. Operasi yang biasanyamembutuhkan2 operand, akanmengambilisi stack paling atasdandibawahnya • Misal: SUB - Bentukalgoritmik: S[top] S[top-1] – S[top] - Arti: Kurangkanisi Stack no.2 dariatasdenganisi Stack paling atas,kemudiansimpanhasilnyadi Stack paling atas • Adainstruksikhusus Stack: PUSH dan POP
Contoh Format Instr 3 Alamat • A, B, C, D, E, T, Y adalahregister • Program: Y = (A – B) / ( C + D × E) SUB Y, A, B Y A – B MPY T, D, E T D × E ADD T, T, C T T + C DIV Y, Y, T Y Y / T
Contoh Format Instr 2 Alamat • A, B, C, D, E, T, Y adalah register • Program: Y = (A – B) / ( C + D × E) MOVE Y, A Y A SUB Y, B Y Y - B MOVE T, D T D MPY T, E T T × E ADD T, C T T + C DIV Y, T Y Y / T
Contoh Format Instr 1 Alamat • A, B, C, D, E, Y adalah register • Program: Y = (A – B) / ( C + D × E) LOAD D AC D MPY E AC AC × E ADD C AC AC + C STOR Y YAC LOAD A AC A SUB B AC AC – B DIV Y AC AC / Y STOR Y YAC
Contoh Format Instr 0 Alamat • A, B, C, D, E, Y adalah register • Program: Y = (A – B) / ( C + D × E) PUSH A S[top] A PUSH B S[top] B SUB S[top] A - B PUSH C S[top] C PUSH D S[top] D PUSH E S[top] E MPY S[top] D × E ADD S[top] C + S[top] DIV S[top] (A - B) / S[top] POP Y Out S[top]
Yang PerluDiperhatikan • Semakinbanyak register yang diolahdalamsatuinstruksisemakinlambat • Semakinbanyakbarisoperasiuntukmengeksekusisebuah program jugasemakinlambat • Olehkarenaitu, CPU masakinibisadikatakanmenggunakanperpaduandaribeberapaformat instruksi, tergantungkonteksnya
Latihan • KerjakanX = (A + B × C) / (D – E × F) • Format Instruksi 3 AlamatSkor 2 • Format Instruksi 2 AlamatSkor 3 • Format Instruksi 1 AlamatSkor 3 • Format Instruksi 0 Alamat Skor4