• 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
interval components.
•Contain binary values
•Instruction is read and executed
directly by microprocessor.
•Platform-specific: each microprocessor
has its own machine language.
Compilation
process for HLL
High-level language
program (C++, Fortran, etc.)
Compiler for Pentium
Windows PC
Compiler for G4
Power Mac Computer
Compiler for SPARC
UNIX workstation
Other
Pentium
object files
Pentium
object code
Other
G4
object files
G4
object code
Other
SPARC
object files
SPARC
object code
Pentium linker G4 linker SPARC linker
Pentium
executable file
Windows
Pentium PC
G4
executable file
G4
Power Mac
SPARC
Executable file
SPARC
UNIX workstation
Process for assembly
language programs.
Assembly Language
Program for processor X
Assembler for
processor X
Processor X
object code
Process X
linker
Processor X
executable file
Computer with
processor X
Other processor X
object file
• 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
• Characters:
* 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
5: 10
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
0: LDAC
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
quickly.
• Completeness: Does the instructions set have
all of the instruction a program needs to
perform its required task?
• Orthogonality: No overlap or perform the
same function.
• Good Instruction
<
Minimize overlap
between instructions
Provide programmers
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