Presentation is loading. Please wait.

Presentation is loading. Please wait.

MIPS assembly. Review  Lat lecture, we learnt  addi,  and, andi, or, ori, xor, xori, nor,  beq, j, bne  An array is stored sequentially in the memory.

Similar presentations


Presentation on theme: "MIPS assembly. Review  Lat lecture, we learnt  addi,  and, andi, or, ori, xor, xori, nor,  beq, j, bne  An array is stored sequentially in the memory."— Presentation transcript:

1 MIPS assembly

2 Review  Lat lecture, we learnt  addi,  and, andi, or, ori, xor, xori, nor,  beq, j, bne  An array is stored sequentially in the memory  The instructions are also stored sequentially in the memory. Executing the code is to load then execute the instructions one by one, unless we encounter a branch condition.

3 Review  Label: A label is associated with exactly one instruction. We can understand it as the address of the instruction in the memory. Go to a label means that fetch that instruction from the memory and execute it.  A label in MIPS looks like L1: add $t0, $t1, $t2

4 Review  We talked about the if-else in MIPS.  When we want to do if ($t0 == $t1) $t0 = $t1 + $t2; else $t0 = $t1 - $t2;  One of the correct ways is beq $t0, $t1, L1 sub $t0, $t1, $t2 j exit L1: add $t0, $t1, $t2 exit:

5 Review  Suppose $t0, $t1, $t2 are storing 1,2,3, respectively. What will the values in $t0 be after we come to these instructions? beq $t0, $t1, L1 sub $t0, $t1, $t2 L1: add $t0, $t1, $t2 exit:

6 Exercise 2  How to implement this with only the instructions we learnt? if ($t1 > $t2) $t0 = $t1; else $t0 = $t2;

7 Exercise 2 # if ($t1 > $t2) $t0 = $t1; # else $t0 = $t2; sub $t3, $t1, $t2 srl $t3, $t3, 31 bne $t3, $zero, L1 ori $t0, $t1, 0 j L2 L1: ori $t0, $t2, 0 L2:

8 slt, slti  slt $t3, $t1, $t2 – set $t3 to be 1 if $t1 < $t2 ; else clear $t3 to be 0.  “Set Less Than.”  slti $t3, $t1, 100 – set $t3 to be 1 if $t1 < 100 ; else clear $t3 to be 0.  Using slt, the code is simpler.

9 Using slt slt $t3, $t1, $t2 bne $t3, $zero, L21 ori $t0, $t1, 0 j L22 L21: ori $t0, $t2, 0 L22:

10 Some Comments  Being able to write if-else, we can have all other fancy things like for loop, while loop….  That is why we do not have an instruction for the for loop or while loop, but we build it from the if-else.

11 Compiling a while loop in C 4/13/2015 week04-3.ppt 11  How to translate the following to MIPS assembly?  We first translate into a C program using if and goto

12 Compiling a while loop in C 4/13/2015 week04-3.ppt 12  Assume that i and k correspond to registers $s3 and $s5 and starting address of array save is in $s6


Download ppt "MIPS assembly. Review  Lat lecture, we learnt  addi,  and, andi, or, ori, xor, xori, nor,  beq, j, bne  An array is stored sequentially in the memory."

Similar presentations


Ads by Google