Set instruksi

**Set Instruksi** (bahasa Inggris: **Instruction Set**, atau **Instruction Set Architecture** (ISA)) adalah suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, pengecualian, dan operasi I/O eksternalnya (jika ada).

ISA merupakan sebuah spesifikasi dari Pullman semua kode-kode biner (*opcode*) yang diimplementasikan dalam bentuk aslinya (*native form*) dalam rancangan prosesor tertentu. Kumpulan *opcode* tersebut, umumnya disebut sebagai **bahasa mesin** (*machine language*) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.

ISA kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik rancangan prosesor untuk mengimplementasikan set instruksi (mencakup *[[microcode]]*, *[[pipeline]]*, *[[sistem cache]]*, pengelolaan daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang mirip dengan set instruksi Intel x86, tetapi jika ditinjau dari rancangan dalamnya, perbedaannya sangat besar. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI dirancang untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan pelantar tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya.

Ketika merancang mikroarsitektur, para perancang menggunakan Register Transfer Language (RTL) untuk mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA.

Sebuah ISA juga dapat diemulasikan dalam bentuk perangkat lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, ini memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat keras yang dikeluarkan oleh vendor.

Daftar ISA di bawah ini tidak dapat dikatakan komprehensif,  mengingat banyaknya arsitektur lama yang tidak digunakan lagi saat ini atau adanya ISA yang baru dibuat oleh para perancang.

## Bagian dari instruksi
 (VLIW) arsitektur, yang mencakup banyak microcode arsitektur, opkode simultan dan operan yang ditentukan dalam sebuah instruksi.

Beberapa set instruksi eksotis tidak memiliki bidang opcode (seperti Transportasi Dipicu Arsitektur (TTA) atau mesin Forth maya), hanya operan (s).
Lainnya tidak biasa " 0-operan" set instruksi kekurangan dalam suatu operan bidang specifier, seperti beberapa [mesin [tumpukan]] termasuk NOSC balik / NOSC /.

## ISA yang diimplementasikan dalam bentuk perangkat keras
* Alpha AXP (DEC Alpha)
* ARM (Acorn RISC Machine) (Advanced RISC Machine now ARM Ltd)
* IA-64 (Itanium/Itanium 2)
* MIPS
* Motorola 68k
* PA-RISC (HP Precision Architecture)
* IBM POWER
* IBM PowerPC
* SPARC
* SuperH (Hitachi)
* System/360
* Tricore (Infineon)
* Transputer (STMicroelectronics)
* VAX (Digital Equipment Corporation)
* x86 (IA-32, Pentium, Athlon) (AMD64, EM64T)

## ISA yang diimplementasikan dalam bentuk perangkat lunak lalu dibuat perangkat kerasnya
* p-Code (UCSD p-System Version III on Western Digital Pascal Micro-Engine)
* Java virtual machine (ARM Jazelle, PicoJava)
* FORTH

## ISA yang tidak pernah diimplementasikan dalam bentuk perangkat keras
* SECD machine
* ALGOL Object Code