Chapter_9 Set Instruksi-Karakteristik Dan Fungsi

download Chapter_9 Set Instruksi-Karakteristik Dan Fungsi

of 30

Transcript of Chapter_9 Set Instruksi-Karakteristik Dan Fungsi

William Stallings Computer Organization and ArchitectureChapter 9Set Instruksi:Karakteristikdan FungsiSet instruksi ?Kumpulan instruksi lengkap yang dimengerti oleh CPUKode mesinBinerKode assemblyElemen InstruksiOperation code (Op code)KerjakanSource Operand referenceDengan data iniResult Operand referenceSimpan hasilnya kesiniNext Instruction ReferenceSetelah selesai, kerjakan ini ...Operands ?Main memory (or virtual memory or cache)CPU registerI/O devicePenyajian InstruksiDlm kode mesin setiap instruksi memiliki pola-bit tertentuUntuk konsumsi programmers disediakan penyajian simbolikContoh: ADD, SUB, LOADOperand juga disajikan secara simbolik Contoh: ADD A,BJenis InstruksiData processingData storage (main memory)Data movement (I/O)Program flow control Jumlah addres (a)3 addresOperand 1, Operand 2, ResultContoh: ADD A,B,Ca = b + c;Jarang digunakanPerlu word yang panjangJumlah addres (b)2 addresSalah satu sebagai operand dan resultContoh: ADD A,Ba = a + bInstruksi lebih pendekDiperlukan kerja ekstraTemporary storage untuk menyimpan beberapa hasil operasiJumlah addres (c)1 addresAddres kedua Implicit Biasanya register (accumulator)Jumlah addres (d)0 (zero) addressemua addres implicitmenggunakan stackContoh:push apush baddpop cBerarti:c = a + b

Addres banyak ? Sedikit ?Addres banyakInstruksi semakin kompleksperlu register banyakProgram lebih pendekLebih cepat ?Addres sedikitInstruksi lebih sederhanaEksekusi lebih cepat

Pertimbangan Perancangan (1)OperationBerapa banyak operand?Apa saja operasi yang dikerjakan?Seberapa komplekx?Jenis dataFormat instruksiPanjang opcodeJumlah addres

Pertimbangan Perancangan (2)RegisterJumlah register yang tersedia dlm CPUOperasi apa yg dpt dikerjakan oleh masing-masing registers?Addressing modes ()

RISC v CISCJenis OperandAddresNumberInteger/floating pointCharacterASCII etc.Logical DataBits or flags(Apa ada bedanya antara number dg character?)Tipe Data pada Pentium8 bit Byte16 bit word32 bit double word64 bit quad wordAddressing menggunakan 8 bit unit32 bit double word dibaca pada addres yg habis dibagi dg 4Tipe Data SpecifikGeneral sembarang isi binerInteger - single binary valueOrdinal - unsigned integerUnpacked BCD - One digit per bytePacked BCD - 2 BCD digits per byteNear Pointer - 32 bit offset within segmentBit fieldByte StringFloating PointTipe Data Floating Point pada Pentium Stallings hal:324Jenis OperasiData TransferArithmeticLogicalConversionI/OSystem ControlTransfer of ControlData TransfermenentukanSourceDestinationJumlah dataBeda instruksi untuk setiap data movement yang bedapada IBM 370Atau satu instruction dengan addres yg bedapada VAXArithmeticAdd, Subtract, Multiply, DivideSigned IntegerFloating point ?Termasuk operasi:Increment (a++)Decrement (a--)Negate (-a)LogicalBitwise operationsAND, OR, NOT

ConversionContoh: Biner ke DecimalInput/OutputTersedia instruksi khususAtau digunakan instruksi data movement (memory mapped)Atau dikerjakan oleh controller (DMA)Systems ControlPrivileged instructionsCPU harus berada pada state tertentu Ring 0 pada 80386+Kernel modeDigunakan oleh operating systemsTransfer of ControlBranchContoh: branch to x if result is zeroSkipContoh: increment and skip if zeroISZ Register1Branch xxxxADD ASubroutine callinterrupt callBaca sendiriJenis operasi pada Pentium and PowerPCStallings hal:338 Byte Order(bagian dari chips?)Bagaiamana urutan bilangan yang lebih dari 1 byte disimpan/dibacacontoh (dalam hex)Bilangan 12345678 dapat disimpan pada lokasi 4x8bit sbb:Contoh Byte OrderAddress Value (1) Value(2)184 12 78185 34 56186 56 34186 78 12

top down atau bottom up?Penamaan Byte OrderProblem ordering dinamakan EndianLSB pada posisi paling kiri (pada addres terkecil)Dinamakan big-endianLSB pada posisi paling kanan (pada addres terbesar)Dinamakan little-endian

Standard?Pentium (80x86), VAX adalah little-endianIBM 370, Motorola 680x0 (Mac), dan RISC yang lain, adalah big-endianInternet menggunakan big-endianMembuat program untuk Internet pada PC lebih susah.WinSock menyediakan htoi (Host to Internet) dan itoh (Internet to Host) untuk keperluan konversi