Als Befehlssatzarchitektur, Befehlsarchitektur oder auch Programmiermodell,[1] englisch Instruction Set Architecture bzw. als Akronym ISA, wird die gesamte nach außen sichtbare Architektur eines Prozessors verstanden.[2] Sie erlaubt als Schnittstelle zwischen Software und Hardware eine vollständige Abstraktion der Hardware, da sie sich auf die Funktionalität des Prozessors beschränkt. Während also die Mikroarchitektur die Implementierung in Hardware definiert, spezifiziert die ISA das Verhalten des Prozessors für die Software.[3]
Die durch Prozessorarchitekturen implementierten Befehlssätze werden als Teil der Architektur verstanden und erhalten daher in der Regel deren Namen, z. B. die x86-Architektur. Befehlssatzarchitekturen entwickeln sich mit der Prozessorarchitektur weiter. Werden die Neuerungen als Befehlssatzerweiterungen implementiert ohne den bisherigen Befehlssatz zu verändern, bleibt die ISA rückwärtskompatibel, wie dies beispielsweise bei x86 der Fall ist: Mit IA-32 ist die 32-Bit-Erweiterung der ursprünglichen 16-Bit-ISA definiert und mit x64 ist ein 64-Bit-Befehlssatz und ein 64-Bit-Betriebsmodus dazugekommen.
Da die Befehlssatzarchitektur als formale Beschreibung spezifiziert ist, gibt sie vor allem Assemblersprache-Programmierern die Möglichkeit, das einheitliche Verhalten von Maschinencode für verschiedene Implementierungen einer bestimmten ISA (Mikroarchitekturen oder virtuelle Maschinen) in Bezug auf Register, Datentypen etc. nachzuvollziehen. Damit kann er oder sie binärkompatible Programme für verschiedene Prozessoren erstellen, wenn sie dieselbe Befehlssatzarchitektur verwenden.