1 William Stallings Computer Organization and Architecture Chapter 9 Set Instruksi: Karakteristik dan Fungsi
William Stallings Computer Organization and ArchitectureChapter 9Set Instruksi:Karakteristikdan Fungsi
Set instruksi ?Kumpulan instruksi lengkap yang dimengerti oleh CPUKode mesinBinerKode assembly
Elemen 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 device
Penyajian InstruksiDlm kode mesin setiap instruksi memiliki pola-bit tertentuUntuk konsumsi programmers disediakan penyajian simbolikContoh: ADD, SUB, LOADOperand juga disajikan secara simbolik Contoh: ADD A,B
Jenis 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 panjang
Jumlah addres (b)2 addresSalah satu sebagai operand dan resultContoh: ADD A,Ba = a + bInstruksi lebih pendekDiperlukan kerja ekstraTemporary storage untuk menyimpan beberapa hasil operasi
Jumlah addres (c)1 addresAddres kedua Implicit Biasanya register (accumulator)
Jumlah addres (d)0 (zero) addressemua addres implicitmenggunakan stackContoh: push a push b add pop 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 CISC
Jenis 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 4
Tipe 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 Point
Tipe Data Floating Point pada Pentium Stallings hal:324
Jenis OperasiData TransferArithmeticLogicalConversionI/OSystem ControlTransfer of Control
Data TransfermenentukanSourceDestinationJumlah dataBeda instruksi untuk setiap data movement yang bedapada IBM 370Atau satu instruction dengan addres yg bedapada VAX
ArithmeticAdd, Subtract, Multiply, DivideSigned IntegerFloating point ?Termasuk operasi:Increment (a++)Decrement (a--)Negate (-a)
LogicalBitwise operationsAND, OR, NOT
ConversionContoh: Biner ke Decimal
Input/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 systems
Transfer of ControlBranchContoh: branch to x if result is zeroSkipContoh: increment and skip if zeroISZ Register1Branch xxxxADD ASubroutine call interrupt call
Baca 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 OrderAddressValue (1)Value(2)1841278185345618656341867812
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
23456789101112131415161718192021222324252627282930