Representing Instructions In The Computer
Introduction
v Instructions are encoded in
binary-Called machine code.
v Instructions are kept in the computer as a
series of high and low electronic signals and may be represented as numbers.
v MIPS instructions
·
Encoded as 32-bit
instruction words.
·
Small number of formats
encoding operation code (opcode)and register numbers.
·
Regularity.
Ø Register numbers
·
$t0 – $t7 are
register numbers 8 – 15
·
$t8 – $t9 are register
numbers 24 – 25
·
$s0 – $s7 are register
numbers 16 – 23
MIPS Registers and Usage Convention
Name
|
Register number
|
Usage
|
$ zero
|
0
|
The constant value 0
|
$at
|
1
|
Reserved for assembler
|
$v0 - $v1
|
2 - 3
|
Value for results and expression evaluation
|
$a0 - $a3
|
4 - 7
|
Arguments
|
$t0 - $t7
|
8 - 15
|
Temporaries
|
$s0 - $s7
|
16 - 23
|
Saved
|
$t8 - $t9
|
24 - 25
|
More temporaries
|
$k0 - $k1
|
26 - 27
|
Reserved for OS kernel
|
$gp
|
28
|
Global pointer
|
$sp
|
29
|
Stack pointer
|
$fp
|
30
|
Frame pointer
|
$ra
|
31
|
Return address
|
MIPS Instruction Format
·
A form of representation of
an instruction composed of fields of binary numbers.
·
One instruction is 32 bits
Ø Each
of segments of an instruction is called a “fields”.
Ø Each
field tells computer something about instruction.
·
MIPS is based on simplicity
define 3 basic
types of instruction formats:
Ø R-format
: for register.
Ø I-format
: for immediate, and lw and sw.
Ø J-format
:for jump.
Instruction Format (machine
code)
·
Simple instruction all 32
bits wide.
·
Very structured, no
unnecessary baggage.
·
3 basic types of instruction
formats:
MIPS R-format Instructions
·
Instruction fields
Ø op: operation code (opcode)
Ø rs (source register ) - first number
ü
Generally used to specify register
containing first operand.
Ø rt (Target Register) - second number
ü
Generally used to specify
register containing second operand.
Ø rd(Destination Register)
ü
Generally used to specift
register which will receive result of computation.
Ø shamt (Shift amount)
Ø funct (function)
ü Selects
the variant of the operation in the op field called function code.
MIPS I – format Instruction
·
Immediate arithmetic
and load/store instructions
Ø opcode
: Uniquely specifies an I-format
instruction.
Ø rs
: Specifies the only register operand and is the base register.
Ø rt
: Specifies register which will receive result of computation .
Ø immediate
: sign-extended to 32bits,and treated as a signed integer.
·
16 bits can be used to represent
immediate up to 216 different values.
MIPS J-format Instructions
o For
general jumps (j
and jal),we may jump to anywhere in memory.
Ø Encode
full address in instruction.
·
Key concepts:
Ø Keep
opcode field identical to R-format and I-format for consistency.
Ø Combine
other fields to make room for target address.
·
Optimization :
Ø Jumps
only jump to word
aligned addresses.
·
Last two bits are always 00
(in binary)
·
Specify 28 bits of the
32-bit address.
·
(Pseudo) Direct jump
addressing
Ø PC
= PC [31…28] || target
address (26 bits) || 00
Ø Note:
means concatenation
Ø 4
bits|| 26 bits ||
2 bits = 32-bit
address
Ø In
the table above, “reg” means a register number between 0 and 31, “address”
means a 16-bit address, and “n.a.”(not applicable) means this field does not
appear in this format.
Ø Note
that add and sub instructions have the same value in the op field; the hardware
uses the funct field to decide the variant of the operation: add (32) or
subtract (34).
Hexadecimal
Ø Reading
binary number are tedious.
Ø Hexadecimal
representation is popular.
Ø Base
16 is power of two and hence it is easy to replace each group of 4 binary
digits.
0
|
0000
|
4
|
0100
|
8
|
1000
|
C
|
1100
|
1
|
0001
|
5
|
0101
|
9
|
1001
|
D
|
1101
|
2
|
0010
|
6
|
0110
|
A
|
1010
|
E
|
1110
|
3
|
0011
|
7
|
0111
|
B
|
1011
|
F
|
1111
|
·
Base 16
ü Compact
representation of bit strings .
ü 4
bits per hex digit.
·
Example :FBDB A385
1111 1011 1101 1011 1010
0011 1000 0101
MIPS Machine Language
Stored
Program Computers
·
Instructions represented in
binary, just like data.
·
Instruction and data stored
in memory.
·
Binary compatibility allows
compiled programs to work on different computers.
Ø Standardized
ISAs
Intstruction for Making Decisions
Introduction
·
Decision making instructions
·
Alter the control
flow.
·
i.e. :change the
“next” instruction to be executed.
(otherwise, it is address of current inst. 4)
·
Destination address
can be specified in the same way as other operands (combination of registers, immediate
constants, and memory locations), depending on what is supported in the ISA.
Loop
·
Decisions are
important both for choosing between two alternatives – found in if statements –
and for iterating a computation – found in loops.
Basic
Blocks
·
A sequence of instructions
·
Without branches,(except
at end) .
·
Without branch
targets or branch labels (except at beginning).
·
One of the first
early phase of compilation is breaking the program into basic block.(for
optimization)
·
An advanced processor
can accelerate execution of basic blocks.
References
Written by.
Yau Kai Shi
B031210077
No comments:
Post a Comment