• Highest level of abstraction
• Platform-independent: same program
code can be converted and run on
computer with different
microprocessors and operating
system without modification.
• C ++, Java, Fortran
• Lower level of abstraction.
• Not platform-independent.
• Backward compatible.
• Can directly manipulate the data
stored in a microprocessor’s
process for HLL
program (C++, Fortran, etc.)
Compiler for Pentium
Compiler for G4
Power Mac Computer
Compiler for SPARC
Pentium linker G4 linker SPARC linker
Process for assembly
Program for processor X
Other processor X
• Data Transfer Instructions
• Data Operation Instructions
• Program Control Instructions
• Do not modify data, only copy value
to its destination.
• Main operation: move data from one place to another
* Load data from memory into microprocessor.
* Store data from microprocessor into memory.
* Move data within the microprocessor.
* Input data to the microprocessor.
* Output data from the microprocessor.
• Modify their data value
• Arithmetic instructions: add, subtract,
multiply and divide.
• Logic instruction: AND, OR, XOR, or
complement a single value.
• Shift instruction: shift the bits of data
value to either left or right.
• Use jump or branch to go to another
part of the program. (jr $ra)
• Conditional calls and returns
bne $t0, $t1, endloop
• Software and hardware interrupts
• Exception or traps
• Half-instruction: stop executing instruction
• Integer <
Unsigned 0 to 2n - 1
Signed -2 n-1 to 2 n-1 - 1
• Floating Point
• Boolean <
True = non-zero
False = zero
* Stored as binary values
* Encoded using ASCII, EBCDIC, UNICODE.
a) Direct Mode
0: LDAC 5
instruction gets data from location 5
5: 10 stores value in CPU
b) Indirect Mode
0: LADC @ 5
instruction gets address from location 5
then gets data from location 10
10: 20 stores value in CPU
c) Immediate Mode
0: LDAC #5 stores value from instruction in CPU
d) Implicit Mode
instruction gets value from stack
stack store value in CPU
• Instruction code: assembly language
instruction converted to machine
code as binary value (0 and 1)
• Opcode needs 4 bits
• Operand needs 2 bits
• A microprocessor may be designed
to work with instructions that specify
3, 2, 1 or 0 operands.
• Need more instructions to accomplish
the same task.
• Hardware implement the microprocessor
become less complex as the number
of operand decreases.
• Instructions code use fewer bits.
• Microprocessor execute instruction more
• Completeness: Does the instructions set have
all of the instruction a program needs to
perform its required task?
• Orthogonality: No overlap or perform the
• Good Instruction
necessary functions with less instructions.
• Large effect on performance of CPU
• CPU retrieve data from its registers
more quickly than from memory.
• Speed up program execution.
Concerning Question About ISA Design
• Does this processor have to be backward
compatible with other microprocessor?
• What types and size of data will the
microprocessor deal with?
• Are interrupts needed?
• Are conditional instruction needed?
Flag: zero, carry, sign