Opcode mengidentifikasi operasi komputer dasar mana dalam set instruksi yang akan dilakukan. Ini digunakan saat menulis kode mesin. Ini memberitahu komputer untuk melakukan sesuatu. Setiap instruksi bahasa mesin biasanya memiliki opcode dan operan. Opcode seperti kata kerja dalam kalimat, dan operan seperti subjek dalam kalimat. Operan biasanya berupa memori atau alamat registri.

Opcode digunakan dalam kode mesin untuk sejumlah fungsi, termasuk Float Addition of registers, Two's compliment addition of registers, Shifting register values to memory, atau ke hard drive, menghentikan program, dll. Secara harfiah ada ratusan opcode umum yang digunakan dalam komputer modern.

Karena sifat arsitektur komputer, opcode berbentuk angka biner. Sebagai alternatif, opcode dapat diwakili oleh digit heksadesimal, (misalnya, 10100101 = A5) untuk memudahkan pembacaan dan pengkodean saat merancang atau mengemulasi program kode mesin. Nilai-nilai ini kemudian ditransformasikan ke dalam ekuivalen binernya untuk disimpan. Opcode modern setidaknya memiliki panjang dua karakter heksa yang memakan ruang penyimpanan 1 byte.

Opcode akan bervariasi dalam kemampuan dan 'nilai' tergantung pada komputer tempat mereka berada, karena mereka bergantung pada perangkat keras. Misalnya, opcode untuk STORE seperti yang dinyatakan dalam Hex bisa jadi FA untuk satu mesin dan 02 untuk mesin lain. Beberapa opcode tidak akan tersedia pada beberapa komputer. Secara umum, ada dua pendekatan untuk membangun set instruksi. Komputer set instruksi tereduksi (RISC) menawarkan opcode yang lebih sedikit demi meningkatkan kecepatan untuk proses sederhana. Complex instruction set Computing (CISC) menawarkan lebih banyak opcode yang mendukung peningkatan kecepatan untuk proses yang kompleks.

Opcode jarang digunakan oleh programmer secara langsung. Kapanpun Opcode diprogram secara langsung ke dalam memori, Opcode hanya dijamin bekerja pada komputer yang dirancang untuknya. Ketika programmer menulis dalam bahasa assembly, program penerjemah mengubah pernyataan program, satu-untuk-satu, menjadi perintah bahasa mesin. Programmer hanya harus mengingat mnemonic untuk setiap opcode, bukan nilai binernya. Sebagai alternatif, dapat digunakan bahasa pemrograman tingkat tinggi, misalnya generasi ke-4, yang akan dikonversi ke generasi ke-3 dan seterusnya hingga mencapai generasi ke-1. Dari sini, komputer individu akan mengubah program ke kode mesin setiap kali file program dibaca. Dengan cara ini, sebuah program dapat bekerja pada berbagai macam komputer yang jauh lebih besar.