Instruction Set Architectures

Let's look at an example of an ISA. We'll begin by looking at a program written in assembly language, a language of mnemonic instructions. There's usually a 1 to 1 correspondence between assembly language instructions and machine instructions.

ori r1,r0,16 // OR immediate; r1 := r0 OR 16 ori r2,r0,1 // r2 := r0 OR 1 loop: dadd r3,r2,r2 // r3 := r2 + r2 movz r2,r3,r0 // r2 := r3 if r0 == 0 dsubi r1,r1,1 // r1 := r1 - 1 bnez r1,loop // if r1 != 0 then goto loop

This program will be assembled into six 32-bit instructions in the MIPS ISA. What does the program do?

Types of Instruction Sets

So-called Reduced Instruction Set Computing (RISC) architectures are load/store architectures. Examples: SPARC, MIPS, Alpha AXP, PowerPC. Complex Instruction Computing (CISC) architectures are usually register-memory architectures. Examples: VAX, x86, MC68000.

Memory Addressing

Addressing memory is one of the most important functions of the ISA. How memory is addressed is specified by the ISA.