Lectures for 3rd Edition
1
2004 Morgan Kaufmann Publishers
Note: these lectures are often supplemented with other materials and also problems from the text worked out
- n the blackboard. You’ll want to customize these
Lectures for 3rd Edition Note: these lectures are often - - PowerPoint PPT Presentation
Lectures for 3rd Edition Note: these lectures are often supplemented with other materials and also problems from the text worked out on the blackboard. Youll want to customize these lectures for your class. The student audience for these
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
1400 1300 Other
2004 Morgan Kaufmann Publishers 1300 1200 1100 1000 900 800 700 600 500 400 300 200 100 1998 2000 2001 2002 1999 Other SPARC Hitachi SH PowerPC Motorola 68K MIPS IA-32 ARM
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
8 bits of data
2004 Morgan Kaufmann Publishers
8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data
32 bits of data 32 bits of data
2004 Morgan Kaufmann Publishers
32 bits of data 32 bits of data
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
Instr. Format
rs rt rd shamt funct address add R Reg Reg Reg 3210 n.a. sub R Reg Reg Reg 3410 n.a. addi I 810 Reg Reg n.a. n.a. n.a. Constant lw I 3510 Reg Reg n.a. n.a. n.a. Address sw I 4310 Reg Reg n.a. n.a. n.a. Address
2004 Morgan Kaufmann Publishers
8 9 45 32 8 8 18 8 9 35 funct Addr/ shamt rd rt rs
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
B yte H a lfw ord W o rd R eg is te rs M e m o r y R eg ister R e gister
rs r t
rs r t
rs r t A d dres s rd . . . fu nc t Im m ed ia te
+
2004 Morgan Kaufmann Publishers M e m o r y W o rd M e m o r y W o rd
rs r t A d dres s A d d re ss P C P C
+
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
1001 0000
MIPS assembly language Category Instruction Example Meaning Unconditional jump jump J L go to L Jump register Jr $ra Go to $ra Jump and link Jal L $ra = PC + 4; go to L
2004 Morgan Kaufmann Publishers
j J 2 2500 J 10000 jr R 31 8 Jr $ra jal J 3 2500 jal 10000 Filed size 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits All MIPS instructions 32 bits R-format R
rs rt rd shamt funct Arithmetic instruction format J-format J
Target address Jump instruction format
2004 Morgan Kaufmann Publishers
FIGURE 3.19 MIPS instruction formats in Chapter 3.
2004 Morgan Kaufmann Publishers
3 0 m
MIPS assembly language Category Instruction Example Meaning Comments
add
add $s1, $s2, $s3 $s1 = $s2 + $s3
Three operands; data in registers
Arithmetic
subtract
sub $s1, $s2, $s3 $s1 = $s2 - $s3
Three operands; data in registers add immediate
addi $s1, $s2, 100 $s1 = $s2 + 100
Used to add constants load word
lw $s1, 100($s2) $s1 = Memory[$s2 + 100] Word from memory to register
store word
sw $s1, 100($s2) Memory[$s2 + 100] = $s1
Word from register to memory
Data transfer
load byte
lb $s1, 100($s2) $s1 = Memory[$s2 + 100] Byte from memory to register
2004 Morgan Kaufmann Publishers
store byte
sb $s1, 100($s2) Memory[$s2 + 100] = $s1
Byte from register to memory load upper immediate lui $s1, 100
$s1 = 100 * 2
16
Loads constant in upper 16 bits branch on equal
beq $s1, $s2, 25
if ($s1 == $s2) go to PC + 4 + 100 Equal test; PC-relative branch
Conditional
branch on not equal
bne $s1, $s2, 25
if ($s1 != $s2) go to PC + 4 + 100 Not equal test; PC-relative
branch
set on less than
slt $s1, $s2, $s3
if ($s2 < $s3) $s1 = 1; else $s1 = 0 Compare less than; for beq, bne set less than immediate
slti $s1, $s2, 100
if ($s2 < 100) $s1 = 1; else $s1 = 0 Compare less than constant jump
j 2500 go to 10000
Jump to target address
Uncondi-
jump register
jr $ra go to $ra
For switch, procedure return
tional jump
jump and link
jal 2500 $ra = PC + 4; go to 10000
For procedure call
and R 18 (S2) 19 (S3) 17 (S1) 36 and $s1, $s2, $s3
R 18 19 17 37
nor R 18 19 17 39 nor $s1, $s2, $s3 andi I 12 18 (S2) 17 (S1) 100 andi $s1, $s2, 100
I 13 18 (S2) 17 (S1) 100
sll R 18 17 10 sll $s1, $s2, 10
2004 Morgan Kaufmann Publishers
sll R 18 17 10 sll $s1, $s2, 10 srl R 18 17 10 2 srl $s1, $s2, 10 beq I 4 17 (S1) 18 (S2) 25 beq $s1, $s2, 100 bne I 5 17 18 25 bne $s1, $s2, 100 slt R 18 19 17 42 slt $s1, $s2, $s3 j J 2 2500 j 10000 Filed size 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits All MIPS instructions 32 bits R-format R
rs rt rd shamt funct Arithmetic instruction format I-format I
rs rt address Data transfer format
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
GPR 0 GPR 1 GPR 2 GPR 3 GPR 4 GPR 5 Use 31 Name EAX ECX EDX EBX ESP EBP
2004 Morgan Kaufmann Publishers
GPR 5 GPR 6 GPR 7 Code segment pointer Stack segment pointer (top of stack) Data segment pointer 0 Data segment pointer 1 Data segment pointer 2 Data segment pointer 3 Instruction pointer (PC) Condition codes EBP ESI EDI CS SS DS ES FS GS EIP EFLAGS
2004 Morgan Kaufmann Publishers
2004 Morgan Kaufmann Publishers
CALL JE Offset Displacement Condi- tion 4 4 8 8 32
2004 Morgan Kaufmann Publishers
Immediate Postbyte TEST ADD PUSH MOV w w Immediate Reg Reg w d Displacement r/m Postbyte 6 8 1 1 8 5 3 4 32 3 1 7 32 1 8
2004 Morgan Kaufmann Publishers