Sumber dan hasil operands dapat berupa salah satu diantara tiga jenis berikut ini:
CPU Register
I/O Device
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
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.
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
• 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
Prosesor ARM mendukung tipe data dari 8 (byte), 16 (halfword), dan 32 (word) bit
panjangnya.
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
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.