In order to run some software you need a real machine and real machines come with a great variety of architecture: a kind of differentiation could be

  • load/store architecture: instructions are divided in two categories: memory access and ALU operations between registers.
  • register architecture: instructions are not divided and operations like add can be between memory and registers.

In particular, the kind of architecture can influence the way a function is called:


There are two notations: Intel and AT&T.


Four principles of IS architecture

  • simplicity favors regularity
  • smaller is faster
  • good design demands compromise
  • make the common case fast


In electronics engineering and computer engineering, microarchitecture, also called computer organization and sometimes abbreviated as µarch or uarch, is the way a given instruction set architecture (ISA) is implemented in a particular processor. A given ISA may be implemented with different microarchitectures; implementations may vary due to different goals of a given design or due to shifts in technology.

Computer architecture

Computer architecture is the combination of microarchitecture and instruction set designs.


The name stands for Reduced instruction set computing: it's a CPU design.


Microprocessor without Interlocked Pipeline Stages


number name description
0 zero always zero
1 at temporary
2-3 v0-v1 return value from a function call
4-7 a0-a3 first four parameters of a function call
8-15 t0-t7 temporary variables need not to be preserved
16-23 s0-s7 function variables, must be preserved
24-25 t8-t9 two more temporary variables
26-27 k0-k1 kernel use registers
28 gp global pointer
29 st stack pointer
30 fp frame pointer
31 ra return address register

Instruction set

Instruction short name description
slti r, s, imm Set on less than immediate (signed) If s is less than immediate, t is set to one. It gets zero otherwise.


Scalable Processor ARChitecture. It's an ISA.


Performance Optimization With Enhanced RISC


The MOS Technology 6502 is a little-endian 8-bit microprocessor with a 16 bit address bus

  • Wikipedia page
  • cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools.

Ricoh 5A22/SNES

The Ricoh 5A22 is a microprocessor produced by Ricoh for the Super Nintendo Entertainment System (SNES) video game console and is based on the MOS Technology 6502 family of processors.


Open source ISA