1

When you write code the compiler and/or assembler follows an ABI(application binary interface).

However, is it that ISAs are varying between different available microarchitectures to develop for, they provide a layer of the data processing, and they abstract some of the bare-machine operations, or differ in finalized approach?

These three things are very confusing, since each different microprocessor can have a different ISA, and is an ABI specific to an ISA? If so, you'd have to know your exact ISA per-microprocessor, and only use one that matches the specifics with an ABI to the ISA to the micro-level.

Is it just me, or does this not confuse anyone else? Wikipedia doesn't make much sense with the articles either, so can anyone help straighten the idea behind this out some more?

2 Answers 2

3

The operating systems book by William Stallings has a great explanation of the differences.

To paraphrase.

ISA is the interface provided by the hardware. It is used by either applications or the Operating system.

API is the interface for Applications. This includes the ISA as well as system calls made to the Operating system.

ABI is similar to the API except it is the version that is available to compiled code.

The following thread does a good job of explaining the difference between ABI and API. What is Application Binary Interface (ABI)?

Sign up to request clarification or add additional context in comments.

Comments

0

They're not entirely dependent, but not entirely exclusive.

Let's take x86 for example. One aspect of the ABI is the __cdecl calling convention. This states that the caller pushes arguments onto the stack, in right-to-left order. It states that the caller is responsible for cleaning those arguments off the stack after the call. This is applicable to all x86 microarchitectures.

A difference between x86 instruction sets would be the presence of SSE instructions. Whether or not these instructions exist has no impact on how arguments are pushed onto the stack.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.