Kode operasi

Dalam komputasi, kode operasi (Inggris: operation code, disingkat opcode), dikenal juga sebagai kode mesin instruksi, kode instruksi, suku kata instruksi, dan paket instruksi, adalah bagian dari instruksi bahasa mesin yang menentukan operasi yang akan dilakukan. Selain kode operasi itu sendiri, sebagian besar instruksi juga menentukan data yang akan mereka proses, dalam bentuk operan. Selain kode operasi yang digunakan dalam arsitektur set instruksi dari berbagai CPU, yang merupakan perangkat keras, kode operasi juga dapat digunakan dalam mesin komputasi abstrak sebagai bagian dari spesifikasi kode bita mereka.

Spesifikasi dan format kode operasi tercantum dalam arsitektur set instruksi (ISA) prosesor yang bersangkutan, berupa CPU umum atau unit pemrosesan yang lebih khusus. Kode operasi untuk set instruksi tertentu dapat dijelaskan melalui penggunaan tabel kode operasi yang merinci semua kode operasi yang mungkin. Terlepas dari kode operasi itu sendiri, sebuah instruksi biasanya juga memiliki satu atau lebih penentu untuk operan (yaitu data) di mana operasi harus bertindak, meskipun beberapa operasi mungkin memiliki operan implisit, atau tidak sama sekali. Ada set instruksi dengan bidang yang hampir seragam untuk kode operasi dan penentu operan, serta yang lain (arsitektur x86 misalnya) dengan struktur variabel-panjang yang lebih rumit. Set instruksi dapat diperpanjang melalui penggunaan awalan kode operasi yang menambahkan subset instruksi baru yang terdiri dari kode operasi yang ada setelah urutan bita yang dicadangkan.

Operan 
Tergantung pada arsitektur, operan dapat berupa nilai pendaftar, nilai dalam tumpukan, nilai memori lainnya, porta I/O (yang mungkin juga dipetakan memori), dll., ditentukan dan diakses menggunakan mode pengalamatan yang kurang lebih kompleks.Jenis-jenis operasi termasuk aritmatika, penyalinan data, operasi logis, dan kontrol program, serta instruksi khusus (seperti CPUID dan lain-lain).

Bahasa rakitan, yang menggunakan instruksi mnemonik dan operan untuk mewakili kode mesin, mampu meningkatkan keterbacaan sambil tetap memberikan kendali yang tepat atas instruksi mesin. Sebagian besar pemrograman saat ini dilakukan menggunakan bahasa pemrograman tingkat tinggi, yang biasanya lebih mudah dibaca dan ditulis. Bahasa-bahasa tersebut perlu disusun (diterjemahkan ke dalam bahasa rakitan) oleh penyusun khusus sistem, atau dijalankan melalui program penyusun lainnya.

Set instruksi perangkat lunak 
Kode operasi juga dapat ditemukan dalam apa yang disebut kode bita dan representasi lain yang ditujukan untuk penerjemah perangkat lunak daripada perangkat keras. Set instruksi berbasis perangkat lunak terkadang menggunakan tipe data dan operasi dengan tingkat yang sedikit lebih tinggi daripada kebanyakan rekan perangkat keras, namun tetap dibangun di sepanjang garis yang sama. Contohnya seperti, kode bita yang ditemukan dalam berkas kelas Java yang telah diterjemahkan oleh Mesin Maya Java (JVM), kode bita yang digunakan dalam GNU Emacs untuk kode Lisp yang tersusun, .NET Common Intermediate Language (CIL), dan lain-lain.

Referensi 

Kode mesin