Overview
ABSTRACT
Instruction sets (ISA) comprise the set of machine instructions that are used by a processor to run a program. They form the interface between hardware and software: they specify the different hardware operations, and are the target of a compiler. This article presents the main features of instruction sets, considering their main characteristics: fixed-length or variable length instructions, data formats, instruction formats, addressing modes, and techniques to translate the main structures of high level languages into machine instructions.
Read this article from a comprehensive knowledge base, updated and supplemented with articles reviewed by scientific committees.
Read the articleAUTHOR
-
Daniel ETIEMBLE: Engineer INSA Lyon - Professor Emeritus, Université Paris Sud
INTRODUCTION
Processor instruction sets constitute a minimum static language at the interface between hardware and software: machine instructions define the operations to be performed by the hardware, and are the target of a compiler. These sets constitute an apparent architecture that differs from the hardware architectures that execute the instructions. Indeed, a program, in the form of machine language after compilation for a certain instruction set, must be able to be executed by a range of machines using this instruction set, but which differ in terms of execution speed, energy consumption, size, cost, etc. The IBM 360 and 370 series in the past, processors running the x86 instruction set, IA-32 and Intel 64 today, are examples illustrating the difference between instruction sets and the hardware architectures using them. However, an instruction set evolves over time according to the needs of applications and the possibilities offered by hardware: instruction sets change from 8-bit to 16-bit, then 32-bit, then 64-bit, and new instructions are added. The problem is that upward binary compatibility must be maintained for general-purpose processors: a processor running a more recent version of the instruction set must be able to execute binary code from an older version without recompilation.
This article does not detail any particular instruction set; it presents the essential features common to all instruction sets: instruction length, data and instruction format, and all the techniques for implementing at instruction set level the essential constructs of high-level languages such as assignments, sequence breaks, conditionals, loops, procedure calls and returns, and so on. In particular, it details the characteristics of RISC instruction sets (fixed-length instructions) and the dominant x86, IA-32 and Intel 64 CISC instruction sets (variable-length instructions).
For both types of instruction set, details are given of data access (registers, memory access and addressing modes), arithmetic and logic instructions, sequence break instructions, procedure call and return instructions, floating-point instructions and a few special instructions. A summary of the characteristics of the IA-32, Intel 64 and MIPS32 and MIPS64 sets is presented. An appendix provides information on instruction coding problems.
Exclusive to subscribers. 97% yet to be discovered!
You do not have access to this resource.
Click here to request your free trial access!
Already subscribed? Log in!
The Ultimate Scientific and Technical Reference
KEYWORDS
instruction sets | hardawre-software interface | RISC | CISC | instruction types | instruction format
This article is included in
Software technologies and System architectures
This offer includes:
Knowledge Base
Updated and enriched with articles validated by our scientific committees
Services
A set of exclusive tools to complement the resources
Practical Path
Operational and didactic, to guarantee the acquisition of transversal skills
Doc & Quiz
Interactive articles with quizzes, for constructive reading
Processor instruction sets
Bibliography
Exclusive to subscribers. 97% yet to be discovered!
You do not have access to this resource.
Click here to request your free trial access!
Already subscribed? Log in!
The Ultimate Scientific and Technical Reference