Anda di halaman 1dari 11

Apa itu set instruksi?

Kumpulan dari instruksi-instruksi berbeda yang dapat dijalankan oleh CPU.

Elemen-elemen dari instruksi mesin (set instruksi)

 Operation Code (opcode) : menentukan operasi yang akan dilaksanakan


 Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan
 Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
 Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi
berikutnya setelah instruksi yang dijalankan selesai.

Sumber dan hasil operands dapat berupa salah satu diantara tiga jenis berikut ini:

 Main or Virtual Memory

 CPU Register

 I/O Device

Instruction Cycle State Diagram


Instruction Representation

Dalam komputer, setiap instruksi diwakili oleh sebuah rangkaian bit.

Opcodes (kode operasi) direpresentasikan oleh singkatan yang disebut mnemonics, yang
menunjukkan operasi. Contoh umumnya seperti :

ADD Add
SUB Subtract
MUL Multiply
DIV Divide
LOAD Load data from memory
STOR Store data to memory
Operand juga direpresentisakan dengan symbol. Contohnya, instruksi

ADD R, Y

Tipe Instruksi
1. Data processing: Arithmetic dan Logic Instructions
2. Data storage: Memory instructions
3. Data Movement: I/O instructions
4. Control: Test and branch instructions

Number of Addresses

1. Tiga Pengalamatan (dua operand, satu hasil)


2. Dua Pengalamatan (satu operand merangkap hasil, satunya lagi operand)
3. Satu Pengalamatan (menggunakan accumulator untuk menyimpan operand dan
hasilnya)
4. Nol Pengalamatan (semua pengalamatan implisit, menggunakan sebuah stack)

Nomor pengalamatan per instruksi adalah sebuah keputusan desain dasar. Lebih sedikit
pengalamatan per instruksi menghasilkan instruksi yang lebih primitive, membutuhkan
sedikit prosesor kompleks. Hal itu juga menghasilkan instruksi yang lebih pendek.

Instruction Set Design

Satu dari hal paling menarik dan paling dianalisa, aspek-aspek dari desain komputer
adalah desain set instruksi. Desain dari sebuah set instruksi sangat kompleks karena hal
tersebut mempengaruhi banyak aspek pada sistem komputer diantaranya adalah:

1. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan
berapa sulit operasinya
2. Data Types: tipe/jenis data yang dapat diolah
3. Instruction Format: panjangnya, banyaknya alamat, dsb.
4. Register: Banyaknya register yang dapat digunakan
5. Addressing: Mode pengalamatan untuk operand

Jenis-jenis Operand

 Addresses
 Numbers :
- Integer or fixed point
- Floating point
- Decimal (BCD)
 Characters :
- ASCII
- EBCDIC
 Logical Data : Bila data berbentuk binary: 0 dan 1

Tipe Data x86

x86 dapat menangani jenis data 8 (byte), 16 (word), 32 (doubleword), 64 (quadword),

dan 128 (quadword ganda) bit dalam ukuran panjangnya.

• 8 bit Byte
• 16 bit word
• 32 bit double word
• 64 bit quad word
• 128 bit double quadword
• Pengalamatan dengan 8 bit unit
• Words tidak perlu menyeleraskan alamat angka
• Data yang diakses di 32 bit bus dalam satuan double word dibaca pada addres
yang habis dibagi oleh 4
• x86 menggunakan gaya little-endian; yaitu, byte paling signifikan disimpan dalam
alamat terendah

Tipe data SIMD (single-instruksi-multiple-data) diperkenalkan untuk arsitektur x86


sebagai bagian dari perpanjangan set instruksi untuk mengoptimalkan kinerja aplikasi
multimedia.

• Tipe data Integer


- Diartikan sebagai bidang bit atau integer
• Packed byte and packed byte integer
- Packed byte menjadi 64-bit quadword atau 128-bit double quadword
• Packed word and packed word integer
- 16-bit words dikemas ke dalam 64-bit quadword atau 128-bit double
quadword
• Packed doubleword and packed doubleword integer
- 32-bit doublewords dikemas menjadi 64-bit quadword atau 128-bit double
quadword
• Packed quadword and packed qaudword integer
- Dua 64-bit quadwords dikemas menjadi 128-bit double quadword
• Packed single-precision floating-point and packed doubleprecision
• Floating-point
- Empat 32-bit floating-point atau dua 64-bit floating-

Tipe Data ARM

Prosesor ARM mendukung tipe data dari 8 (byte), 16 (halfword), dan 32 (word) bit
panjangnya.

• 8 ( byte ) , 16 ( halfword ) , 32 ( word ) bit


• Halfword dan word seharusnya mengakses word yang selaras
• Alternatif akses nonblok
- Default
 Diperlakukan dengan terpotong
 Bits [ 01:00 ] diperlakukan sebagai nol untuk word
 Bit [ 0 ] diperlakukan sebagai nol untuk halfword
 Memuat instruksi putar kanan data single word yang selarasa
ditransfer oleh alamat non word-aligned satu, dua atau tiga
pengecekan bytesAlignment
- Data yang membatalkan sinyal menunjukkan untuk percobaan akses yang
tidak lurus
- Akses tidak diluruskan
- Processor menggunakan satu atau lebih mengakses memori untuk
menghasilkan transfer byte yang berdekatan secara transparan bagi
programmer
• Interpretasi bilangan bulat Unsigned didukung untuk semua jenis
• Interpretasi Twos-complement signed integerdidukung untuk semua jenis
• Sebagian besar implementasi tidak menyediakan perangkat keras floating-point
- Menghemat daya dan tempat
- Aritmatika floating-point diimplementasikan dalam perangkat lunak
- Opsional floating-point coprocessor
- Single dan double- presisi IEEE 754 tipe data floating point

ARM Endian Support

• E-bit di system control register

• Di bawah kontrol program


ENDIAN SUPPORT adalah sedikit keadaan (E-bit) dalam sistem kontrol register yang diatur
dan dibersihkan di bawah kontrol program dengan menggunakan instruksi SETEND.

Types of Operation

Jumlah opcodes berbeda dan bervariasi dari mesin ke mesin. Namun, umumnya jenis operasi
yang sama ditemukan pada semua mesin. Tipe dan kegunaannya sebagai berikut :

• Transfer Data
• Spesifik
— Sumber
— Tujuan
— Jumlah data
• Memungkinkan perbedaan instruksi dalam gerak yang berbeda
— e.g. IBM 370
• Atau satu instruksi dan alamat yang berbeda
— e.g. VAX
• Aritmatika
• Penjumlahan, Pengurangan, Perkalian,
• Signed Integer
• Floating point
• Bisa termasuk
— Increment (a++)
— Decrement (a--)
— Negasi (-a)
• Logika

Kebanyakan mesin juga menyediakan berbagai operasi untuk


memanipulasi bit individu dari sebuah word atau unit beralamat lainnya,
sering disebut sebagai “bit twiddling.” Itu berdasarkan operasi Boolean.
• Conversion

Instruksi Konversi adalah logika yang mengubah format atau beroperasi


pada format data. Contohnya adalah mengkonversi dari desimal ke biner.
Contoh yang lebih kompleks dari instruksi editing adalah instruksi
EAS/390 Translate (TR). Instruksi ini dapat digunakan untuk
mengkonversi dari satu kode 8-bit ke yang lain, dan dibutuhkan tiga
operan:

TR R1 (L), R2

• I/O
 Memungkinkan instruksi yang spesifik
 Memungkinkan dilakukan menggunakan instruksi perpindahan data
(memory mapped)
 Memungkinkan dilakukan dengan sebuah control terpisah (DMA)
• System Control
 Instruksi istimewa
 CPU membutuhkan untuk menjadi pernyataan yang spesifik
o Ring 0 on 80386+
o Kernel mode
 Untuk penggunaan sistem operasi
• Transfer of Control
 Cabang
o e.g. cabang ke x jika bernilai nol
 Skip
o e.g. increment dan skip jika nol
o ISZ Register1
o Branch xxxx
o ADD A
 Subroutine call
o c.f. memotong panggilan

INSTRUKSI CABANG juga disebut instruksi loncatan, sebagai salah satu Operand alamat
dari instruksi berikutnya yang akan dieksekusi. Kebanyakan, instruksi adalah instruksi
cabang bersyarat.
INSTRUKSI PROSEDUR PANGGILAN Bisa jadi inovasi yang paling penting dalam
pengembangan bahasa pemrograman adalah prosedur. Suatu prosedur adalah program
komputer selfcontained yang dimasukkan ke dalam program yang lebih besar. Pada setiap
titik dalam program prosedur dapat dilibatkan atau disebut called. Prosesor diperintahkan
untuk pergi dan melaksanakan seluruh prosedur dan kemudian kembali ke titik dimana
panggilan berlangsung.
Pernyataan RETURN menyebabkan prosesor untuk kembali ke program panggilan dan
melanjutkan eksekusi pada instruksi setelah sesuai instruksi PANGGILAN.

Karena ingin dapat memanggil prosedur dari berbagai titik, prosesor harus entah bagaimana
menyimpan alamat kembali sehingga RETURN dapat mengambil tempat yang tepat. Ada tiga
tempat umum untuk menyimpan alamat RETURN:

• Register
• Start dari yang disebut prosedur
• Top stack

Pendekatan yang lebih umum dan kuat adalah dengan menggunakan stack.. Ketika prosesor
mengeksekusi panggilan, ia menempatkan pengembalian alamat pada stack. Ketika
dijalankan kembali, menggunakan alamat pada stack.

Sebuah pendekatan yang lebih fleksibel untuk parameter passing adalah stack. Ketika
prosesor mengeksekusi panggilan, tidak hanya menumpukkan alamat pengirim, juga
menumpukkan parameter untuk diteruskan yang disebut prosedur yang dapat mengakses
parameter dari stack. Setelah kembali, parameter RETURN juga dapat ditempatkan pada
stack. Seluruh set parameter, termasuk alamat pengirim, yang disimpan untuk prosedur
disebut sebagai stack frame.

Anda mungkin juga menyukai